<!DOCTYPE html>
<!-- saved from url=(0046)./chart.html -->
<html>

<head>
  <!--谷歌分析工具-->
  <!--https://www.imhunk.com/install-google-webmasters-and-google-analytics/#title1-->
  <meta name="google-site-verification" content="_glN7pkglI6X0zN5WcqtUqWcdsZYrHjodY0N-RU1O08" />
  <!-- Google tag (gtag.js) -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=G-VEDJEGSS57"></script>
  <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'G-VEDJEGSS57');
  </script>

  <meta name="referrer" content="origin">

  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <style type="text/css">
    .turbo-progress-bar {
      position: fixed;
      display: block;
      top: 0;
      left: 0;
      height: 3px;
      background: #0076ff;
      z-index: 2147483647;
      transition:
        width 300ms ease-out,
        opacity 150ms 150ms ease-in;
      transform: translate3d(0, 0, 0);
    }

    #rotateImg {
      width: 100px;
      height: 100px;
      animation: rotate 2s infinite linear;
    }

    @keyframes rotate {
      from {
        transform: rotate(0deg);
      }

      to {
        transform: rotate(360deg);
      }
    }
  </style>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js"></script>
  <!-- 引入 Axios -->
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  <script src="./common/request.js"></script>
  <script type="text/javascript" async="" src="./js/js"></script>
  <script src="./js/347575881032536" async=""></script>
  <script async="" src="./js/fbevents.js.下载"></script>
  <script async="" src="./js/gtm.js.下载"></script>
  <script type="text/javascript" async="" src="./js/mixpanel-2-latest.min.js.下载"></script>
  <script
    type="text/javascript">window.NREUM || (NREUM = {}); NREUM.info = { "beacon": "bam.nr-data.net", "errorBeacon": "bam.nr-data.net", "licenseKey": "NRJS-a03c265a2aab27c30fa", "applicationID": "1517344485", "transactionName": "IQ5aFkQNCQ9VRUoHXAwXURBFAxEKX1kWS0AKDkM=", "queueTime": 4, "applicationTime": 86, "agent": "" }</script>
  <script
    type="text/javascript">(window.NREUM || (NREUM = {})).init = { ajax: { deny_list: ["bam.nr-data.net"] } }; (window.NREUM || (NREUM = {})).loader_config = { licenseKey: "NRJS-a03c265a2aab27c30fa", applicationID: "1517344485" };;/*! For license information please see nr-loader-rum-1.246.1.min.js.LICENSE.txt */
      (() => { "use strict"; var e, t, n = { 234: (e, t, n) => { n.d(t, { P_: () => h, Mt: () => m, C5: () => s, DL: () => w, OP: () => j, lF: () => S, Yu: () => _, Dg: () => v, CX: () => c, GE: () => A, sU: () => T }); var r = n(8632), i = n(9567); const a = { beacon: r.ce.beacon, errorBeacon: r.ce.errorBeacon, licenseKey: void 0, applicationID: void 0, sa: void 0, queueTime: void 0, applicationTime: void 0, ttGuid: void 0, user: void 0, account: void 0, product: void 0, extra: void 0, jsAttributes: {}, userAttributes: void 0, atts: void 0, transactionName: void 0, tNamePlain: void 0 }, o = {}; function s(e) { if (!e) throw new Error("All info objects require an agent identifier!"); if (!o[e]) throw new Error("Info for ".concat(e, " was never set")); return o[e] } function c(e, t) { if (!e) throw new Error("All info objects require an agent identifier!"); o[e] = (0, i.D)(t, a), (0, r.Qy)(e, o[e], "info") } const d = e => { if (!e || "string" != typeof e) return !1; try { document.createDocumentFragment().querySelector(e) } catch { return !1 } return !0 }; var u = n(7056), l = n(50); const f = () => { const e = { mask_selector: "*", block_selector: "[data-nr-block]", mask_input_options: { color: !1, date: !1, "datetime-local": !1, email: !1, month: !1, number: !1, range: !1, search: !1, tel: !1, text: !1, time: !1, url: !1, week: !1, textarea: !1, select: !1, password: !0 } }; return { feature_flags: [], proxy: { assets: void 0, beacon: void 0 }, privacy: { cookies_enabled: !0 }, ajax: { deny_list: void 0, block_internal: !0, enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, distributed_tracing: { enabled: void 0, exclude_newrelic_header: void 0, cors_use_newrelic_header: void 0, cors_use_tracecontext_headers: void 0, allowed_origins: void 0 }, session: { domain: void 0, expiresMs: u.oD, inactiveMs: u.Hb }, ssl: void 0, obfuscate: void 0, jserrors: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, metrics: { enabled: !0, autoStart: !0 }, page_action: { enabled: !0, harvestTimeSeconds: 30, autoStart: !0 }, page_view_event: { enabled: !0, autoStart: !0 }, page_view_timing: { enabled: !0, harvestTimeSeconds: 30, long_task: !1, autoStart: !0 }, session_trace: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 }, harvest: { tooManyRequestsDelay: 60 }, session_replay: { autoStart: !0, enabled: !1, harvestTimeSeconds: 60, sampling_rate: 50, error_sampling_rate: 50, collect_fonts: !1, inline_images: !1, inline_stylesheet: !0, mask_all_inputs: !0, get mask_text_selector() { return e.mask_selector }, set mask_text_selector(t) { d(t) ? e.mask_selector = t + ",[data-nr-mask]" : null === t ? e.mask_selector = t : (0, l.Z)("An invalid session_replay.mask_selector was provided and will not be used", t) }, get block_class() { return "nr-block" }, get ignore_class() { return "nr-ignore" }, get mask_text_class() { return "nr-mask" }, get block_selector() { return e.block_selector }, set block_selector(t) { d(t) ? e.block_selector += ",".concat(t) : "" !== t && (0, l.Z)("An invalid session_replay.block_selector was provided and will not be used", t) }, get mask_input_options() { return e.mask_input_options }, set mask_input_options(t) { t && "object" == typeof t ? e.mask_input_options = { ...t, password: !0 } : (0, l.Z)("An invalid session_replay.mask_input_option was provided and will not be used", t) } }, spa: { enabled: !0, harvestTimeSeconds: 10, autoStart: !0 } } }, g = {}, p = "All configuration objects require an agent identifier!"; function h(e) { if (!e) throw new Error(p); if (!g[e]) throw new Error("Configuration for ".concat(e, " was never set")); return g[e] } function v(e, t) { if (!e) throw new Error(p); g[e] = (0, i.D)(t, f()), (0, r.Qy)(e, g[e], "config") } function m(e, t) { if (!e) throw new Error(p); var n = h(e); if (n) { for (var r = t.split("."), i = 0; i < r.length - 1; i++)if ("object" != typeof (n = n[r[i]])) return; n = n[r[r.length - 1]] } return n } const b = { accountID: void 0, trustKey: void 0, agentID: void 0, licenseKey: void 0, applicationID: void 0, xpid: void 0 }, y = {}; function w(e) { if (!e) throw new Error("All loader-config objects require an agent identifier!"); if (!y[e]) throw new Error("LoaderConfig for ".concat(e, " was never set")); return y[e] } function A(e, t) { if (!e) throw new Error("All loader-config objects require an agent identifier!"); y[e] = (0, i.D)(t, b), (0, r.Qy)(e, y[e], "loader_config") } const _ = (0, r.mF)().o; var x = n(385), D = n(6818); const k = { buildEnv: D.Re, customTransaction: void 0, disabled: !1, distMethod: D.gF, isolatedBacklog: !1, loaderType: void 0, maxBytes: 3e4, offset: Math.floor(x._A?.performance?.timeOrigin || x._A?.performance?.timing?.navigationStart || Date.now()), onerror: void 0, origin: "" + x._A.location, ptid: void 0, releaseIds: {}, session: void 0, xhrWrappable: "function" == typeof x._A.XMLHttpRequest?.prototype?.addEventListener, version: D.q4, denyList: void 0 }, E = {}; function j(e) { if (!e) throw new Error("All runtime objects require an agent identifier!"); if (!E[e]) throw new Error("Runtime for ".concat(e, " was never set")); return E[e] } function T(e, t) { if (!e) throw new Error("All runtime objects require an agent identifier!"); E[e] = (0, i.D)(t, k), (0, r.Qy)(e, E[e], "runtime") } function S(e) { return function (e) { try { const t = s(e); return !!t.licenseKey && !!t.errorBeacon && !!t.applicationID } catch (e) { return !1 } }(e) } }, 9567: (e, t, n) => { n.d(t, { D: () => i }); var r = n(50); function i(e, t) { try { if (!e || "object" != typeof e) return (0, r.Z)("Setting a Configurable requires an object as input"); if (!t || "object" != typeof t) return (0, r.Z)("Setting a Configurable requires a model to set its initial properties"); const n = Object.create(Object.getPrototypeOf(t), Object.getOwnPropertyDescriptors(t)), a = 0 === Object.keys(n).length ? e : n; for (let o in a) if (void 0 !== e[o]) try { Array.isArray(e[o]) && Array.isArray(t[o]) ? n[o] = Array.from(new Set([...e[o], ...t[o]])) : "object" == typeof e[o] && "object" == typeof t[o] ? n[o] = i(e[o], t[o]) : n[o] = e[o] } catch (e) { (0, r.Z)("An error occurred while setting a property of a Configurable", e) } return n } catch (e) { (0, r.Z)("An error occured while setting a Configurable", e) } } }, 6818: (e, t, n) => { n.d(t, { Re: () => i, gF: () => a, q4: () => r }); const r = "1.246.1", i = "PROD", a = "CDN" }, 385: (e, t, n) => { n.d(t, { Nk: () => u, Tt: () => s, _A: () => a, cv: () => l, iS: () => o, il: () => r, ux: () => c, v6: () => i, w1: () => d }); const r = "undefined" != typeof window && !!window.document, i = "undefined" != typeof WorkerGlobalScope && ("undefined" != typeof self && self instanceof WorkerGlobalScope && self.navigator instanceof WorkerNavigator || "undefined" != typeof globalThis && globalThis instanceof WorkerGlobalScope && globalThis.navigator instanceof WorkerNavigator), a = r ? window : "undefined" != typeof WorkerGlobalScope && ("undefined" != typeof self && self instanceof WorkerGlobalScope && self || "undefined" != typeof globalThis && globalThis instanceof WorkerGlobalScope && globalThis), o = Boolean("hidden" === a?.document?.visibilityState), s = (a?.location, /iPad|iPhone|iPod/.test(a.navigator?.userAgent)), c = s && "undefined" == typeof SharedWorker, d = ((() => { const e = a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/); Array.isArray(e) && e.length >= 2 && e[1] })(), Boolean(r && window.document.documentMode)), u = !!a.navigator?.sendBeacon, l = Math.floor(a?.performance?.timeOrigin || a?.performance?.timing?.navigationStart || Date.now()) }, 1117: (e, t, n) => { n.d(t, { w: () => a }); var r = n(50); const i = { agentIdentifier: "", ee: void 0 }; class a { constructor(e) { try { if ("object" != typeof e) return (0, r.Z)("shared context requires an object as input"); this.sharedContext = {}, Object.assign(this.sharedContext, i), Object.entries(e).forEach((e => { let [t, n] = e; Object.keys(i).includes(t) && (this.sharedContext[t] = n) })) } catch (e) { (0, r.Z)("An error occured while setting SharedContext", e) } } } }, 8e3: (e, t, n) => { n.d(t, { L: () => u, R: () => c }); var r = n(8325), i = n(1284), a = n(4322), o = n(3325); const s = {}; function c(e, t) { const n = { staged: !1, priority: o.p[t] || 0 }; d(e), s[e].get(t) || s[e].set(t, n) } function d(e) { e && (s[e] || (s[e] = new Map)) } function u() { let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "feature"; if (d(e), !e || !s[e].get(t)) return o(t); s[e].get(t).staged = !0; const n = [...s[e]]; function o(t) { const n = e ? r.ee.get(e) : r.ee, o = a.X.handlers; if (n.backlog && o) { var s = n.backlog[t], c = o[t]; if (c) { for (var d = 0; s && d < s.length; ++d)l(s[d], c); (0, i.D)(c, (function (e, t) { (0, i.D)(t, (function (t, n) { n[0].on(e, n[1]) })) })) } delete o[t], n.backlog[t] = null, n.emit("drain-" + t, []) } } n.every((e => { let [t, n] = e; return n.staged })) && (n.sort(((e, t) => e[1].priority - t[1].priority)), n.forEach((t => { let [n] = t; s[e].delete(n), o(n) }))) } function l(e, t) { var n = e[1]; (0, i.D)(t[n], (function (t, n) { var r = e[0]; if (n[0] === r) { var i = n[1], a = e[3], o = e[2]; i.apply(a, o) } })) } }, 8325: (e, t, n) => { n.d(t, { A: () => c, ee: () => d }); var r = n(8632), i = n(2210), a = n(234); class o { constructor(e) { this.contextId = e } } var s = n(3117); const c = "nr@context:".concat(s.a), d = function e(t, n) { var r = {}, s = {}, u = {}, f = !1; try { f = 16 === n.length && (0, a.OP)(n).isolatedBacklog } catch (e) { } var g = { on: h, addEventListener: h, removeEventListener: function (e, t) { var n = r[e]; if (!n) return; for (var i = 0; i < n.length; i++)n[i] === t && n.splice(i, 1) }, emit: function (e, n, r, i, a) { !1 !== a && (a = !0); if (d.aborted && !i) return; t && a && t.emit(e, n, r); for (var o = p(r), c = v(e), u = c.length, l = 0; l < u; l++)c[l].apply(o, n); var f = b()[s[e]]; f && f.push([g, e, n, o]); return o }, get: m, listeners: v, context: p, buffer: function (e, t) { const n = b(); if (t = t || "feature", g.aborted) return; Object.entries(e || {}).forEach((e => { let [r, i] = e; s[i] = t, t in n || (n[t] = []) })) }, abort: l, aborted: !1, isBuffering: function (e) { return !!b()[s[e]] }, debugId: n, backlog: f ? {} : t && "object" == typeof t.backlog ? t.backlog : {} }; return g; function p(e) { return e && e instanceof o ? e : e ? (0, i.X)(e, c, (() => new o(c))) : new o(c) } function h(e, t) { r[e] = v(e).concat(t) } function v(e) { return r[e] || [] } function m(t) { return u[t] = u[t] || e(g, t) } function b() { return g.backlog } }(void 0, "globalEE"), u = (0, r.fP)(); function l() { d.aborted = !0, d.backlog = {} } u.ee || (u.ee = d) }, 5546: (e, t, n) => { n.d(t, { E: () => r, p: () => i }); var r = n(8325).ee.get("handle"); function i(e, t, n, i, a) { a ? (a.buffer([e], i), a.emit(e, t, n)) : (r.buffer([e], i), r.emit(e, t, n)) } }, 4322: (e, t, n) => { n.d(t, { X: () => a }); var r = n(5546); a.on = o; var i = a.handlers = {}; function a(e, t, n, a) { o(a || r.E, i, e, t, n) } function o(e, t, n, i, a) { a || (a = "feature"), e || (e = r.E); var o = t[a] = t[a] || {}; (o[n] = o[n] || []).push([e, i]) } }, 3239: (e, t, n) => { n.d(t, { bP: () => s, iz: () => c, m$: () => o }); var r = n(385); let i = !1, a = !1; try { const e = { get passive() { return i = !0, !1 }, get signal() { return a = !0, !1 } }; r._A.addEventListener("test", null, e), r._A.removeEventListener("test", null, e) } catch (e) { } function o(e, t) { return i || a ? { capture: !!e, passive: i, signal: t } : !!e } function s(e, t) { let n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r = arguments.length > 3 ? arguments[3] : void 0; window.addEventListener(e, t, o(n, r)) } function c(e, t) { let n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], r = arguments.length > 3 ? arguments[3] : void 0; document.addEventListener(e, t, o(n, r)) } }, 3117: (e, t, n) => { n.d(t, { a: () => r }); const r = (0, n(4402).Rl)() }, 4402: (e, t, n) => { n.d(t, { Rl: () => o, ky: () => s }); var r = n(385); const i = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"; function a(e, t) { return e ? 15 & e[t] : 16 * Math.random() | 0 } function o() { const e = r._A?.crypto || r._A?.msCrypto; let t, n = 0; return e && e.getRandomValues && (t = e.getRandomValues(new Uint8Array(31))), i.split("").map((e => "x" === e ? a(t, ++n).toString(16) : "y" === e ? (3 & a() | 8).toString(16) : e)).join("") } function s(e) { const t = r._A?.crypto || r._A?.msCrypto; let n, i = 0; t && t.getRandomValues && (n = t.getRandomValues(new Uint8Array(31))); const o = []; for (var s = 0; s < e; s++)o.push(a(n, ++i).toString(16)); return o.join("") } }, 7056: (e, t, n) => { n.d(t, { Bq: () => r, Hb: () => a, oD: () => i }); const r = "NRBA", i = 144e5, a = 18e5 }, 7894: (e, t, n) => { function r() { return Math.round(performance.now()) } n.d(t, { z: () => r }) }, 50: (e, t, n) => { function r(e, t) { "function" == typeof console.warn && (console.warn("New Relic: ".concat(e)), t && console.warn(t)) } n.d(t, { Z: () => r }) }, 2587: (e, t, n) => { n.d(t, { N: () => c, T: () => d }); var r = n(8325), i = n(5546), a = n(3325); const o = { stn: [a.D.sessionTrace], err: [a.D.jserrors, a.D.metrics], ins: [a.D.pageAction], spa: [a.D.spa], sr: [a.D.sessionReplay, a.D.sessionTrace] }, s = new Set; function c(e, t) { const n = r.ee.get(t); e && "object" == typeof e && (s.has(t) || Object.entries(e).forEach((e => { let [t, r] = e; o[t] ? o[t].forEach((e => { r ? (0, i.p)("feat-" + t, [], void 0, e, n) : (0, i.p)("block-" + t, [], void 0, e, n), (0, i.p)("rumresp-" + t, [Boolean(r)], void 0, e, n) })) : r && (0, i.p)("feat-" + t, [], void 0, void 0, n), d[t] = Boolean(r) })), Object.keys(o).forEach((e => { void 0 === d[e] && (o[e]?.forEach((t => (0, i.p)("rumresp-" + e, [!1], void 0, t, n))), d[e] = !1) })), s.add(t)) } const d = {} }, 2210: (e, t, n) => { n.d(t, { X: () => i }); var r = Object.prototype.hasOwnProperty; function i(e, t, n) { if (r.call(e, t)) return e[t]; var i = n(); if (Object.defineProperty && Object.keys) try { return Object.defineProperty(e, t, { value: i, writable: !0, enumerable: !1 }), i } catch (e) { } return e[t] = i, i } }, 1284: (e, t, n) => { n.d(t, { D: () => r }); const r = (e, t) => Object.entries(e || {}).map((e => { let [n, r] = e; return t(n, r) })) }, 4351: (e, t, n) => { n.d(t, { P: () => a }); var r = n(8325); const i = () => { const e = new WeakSet; return (t, n) => { if ("object" == typeof n && null !== n) { if (e.has(n)) return; e.add(n) } return n } }; function a(e) { try { return JSON.stringify(e, i()) } catch (e) { try { r.ee.emit("internal-error", [e]) } catch (e) { } } } }, 3960: (e, t, n) => { n.d(t, { K: () => o, b: () => a }); var r = n(3239); function i() { return "undefined" == typeof document || "complete" === document.readyState } function a(e, t) { if (i()) return e(); (0, r.bP)("load", e, t) } function o(e) { if (i()) return e(); (0, r.iz)("DOMContentLoaded", e) } }, 8632: (e, t, n) => { n.d(t, { EZ: () => d, Qy: () => c, ce: () => a, fP: () => o, gG: () => u, mF: () => s }); var r = n(7894), i = n(385); const a = { beacon: "bam.nr-data.net", errorBeacon: "bam.nr-data.net" }; function o() { return i._A.NREUM || (i._A.NREUM = {}), void 0 === i._A.newrelic && (i._A.newrelic = i._A.NREUM), i._A.NREUM } function s() { let e = o(); return e.o || (e.o = { ST: i._A.setTimeout, SI: i._A.setImmediate, CT: i._A.clearTimeout, XHR: i._A.XMLHttpRequest, REQ: i._A.Request, EV: i._A.Event, PR: i._A.Promise, MO: i._A.MutationObserver, FETCH: i._A.fetch }), e } function c(e, t, n) { let i = o(); const a = i.initializedAgents || {}, s = a[e] || {}; return Object.keys(s).length || (s.initializedAt = { ms: (0, r.z)(), date: new Date }), i.initializedAgents = { ...a, [e]: { ...s, [n]: t } }, i } function d(e, t) { o()[e] = t } function u() { return function () { let e = o(); const t = e.info || {}; e.info = { beacon: a.beacon, errorBeacon: a.errorBeacon, ...t } }(), function () { let e = o(); const t = e.init || {}; e.init = { ...t } }(), s(), function () { let e = o(); const t = e.loader_config || {}; e.loader_config = { ...t } }(), o() } }, 7956: (e, t, n) => { n.d(t, { N: () => i }); var r = n(3239); function i(e) { let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], n = arguments.length > 2 ? arguments[2] : void 0, i = arguments.length > 3 ? arguments[3] : void 0; (0, r.iz)("visibilitychange", (function () { if (t) return void ("hidden" === document.visibilityState && e()); e(document.visibilityState) }), n, i) } }, 3081: (e, t, n) => { n.d(t, { gF: () => a, mY: () => i, t9: () => r, vz: () => s, xS: () => o }); const r = n(3325).D.metrics, i = "sm", a = "cm", o = "storeSupportabilityMetrics", s = "storeEventMetrics" }, 7633: (e, t, n) => { n.d(t, { t: () => r }); const r = n(3325).D.pageViewEvent }, 9251: (e, t, n) => { n.d(t, { t: () => r }); const r = n(3325).D.pageViewTiming }, 5938: (e, t, n) => { n.d(t, { W: () => i }); var r = n(8325); class i { constructor(e, t, n) { this.agentIdentifier = e, this.aggregator = t, this.ee = r.ee.get(e), this.featureName = n, this.blocked = !1 } } }, 7530: (e, t, n) => { n.d(t, { j: () => b }); var r = n(3325), i = n(234), a = n(5546), o = n(8325), s = n(7894), c = n(8e3), d = n(3960), u = n(385), l = n(50), f = n(3081), g = n(8632); function p() { const e = (0, g.gG)();["setErrorHandler", "finished", "addToTrace", "addRelease", "addPageAction", "setCurrentRouteName", "setPageViewName", "setCustomAttribute", "interaction", "noticeError", "setUserId", "setApplicationVersion", "start"].forEach((t => { e[t] = function () { for (var n = arguments.length, r = new Array(n), i = 0; i < n; i++)r[i] = arguments[i]; return function (t) { for (var n = arguments.length, r = new Array(n > 1 ? n - 1 : 0), i = 1; i < n; i++)r[i - 1] = arguments[i]; let a = []; return Object.values(e.initializedAgents).forEach((e => { e.exposed && e.api[t] && a.push(e.api[t](...r)) })), a.length > 1 ? a : a[0] }(t, ...r) } })) } var h = n(2587); const v = e => { const t = e.startsWith("http"); e += "/", n.p = t ? e : "https://" + e }; let m = !1; function b(e) { let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, b = arguments.length > 2 ? arguments[2] : void 0, y = arguments.length > 3 ? arguments[3] : void 0, { init: w, info: A, loader_config: _, runtime: x = { loaderType: b }, exposed: D = !0 } = t; const k = (0, g.gG)(); A || (w = k.init, A = k.info, _ = k.loader_config), (0, i.Dg)(e, w || {}), (0, i.GE)(e, _ || {}), A.jsAttributes ??= { }, u.v6 && (A.jsAttributes.isWorker = !0), (0, i.CX)(e, A); const E = (0, i.P_)(e), j = [A.beacon, A.errorBeacon]; m || (m = !0, E.proxy.assets && (v(E.proxy.assets), j.push(E.proxy.assets)), E.proxy.beacon && j.push(E.proxy.beacon)), x.denyList = [...E.ajax.deny_list || [], ...E.ajax.block_internal ? j : []], (0, i.sU)(e, x), p(); const T = function (e, t) { t || (0, c.R)(e, "api"); const g = {}; var p = o.ee.get(e), h = p.get("tracer"), v = "api-", m = v + "ixn-"; function b(t, n, r, a) { const o = (0, i.C5)(e); return null === n ? delete o.jsAttributes[t] : (0, i.CX)(e, { ...o, jsAttributes: { ...o.jsAttributes, [t]: n } }), A(v, r, !0, a || null === n ? "session" : void 0)(t, n) } function y() { } ["setErrorHandler", "finished", "addToTrace", "addRelease"].forEach((e => { g[e] = A(v, e, !0, "api") })), g.addPageAction = A(v, "addPageAction", !0, r.D.pageAction), g.setCurrentRouteName = A(v, "routeName", !0, r.D.spa), g.setPageViewName = function (t, n) { if ("string" == typeof t) return "/" !== t.charAt(0) && (t = "/" + t), (0, i.OP)(e).customTransaction = (n || "http://custom.transaction") + t, A(v, "setPageViewName", !0)() }, g.setCustomAttribute = function (e, t) { let n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; if ("string" == typeof e) { if (["string", "number", "boolean"].includes(typeof t) || null === t) return b(e, t, "setCustomAttribute", n); (0, l.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string, number or boolean type, but a type of <".concat(typeof t, "> was provided.")) } else (0, l.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of <".concat(typeof e, "> was provided.")) }, g.setUserId = function (e) { if ("string" == typeof e || null === e) return b("enduser.id", e, "setUserId", !0); (0, l.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of <".concat(typeof e, "> was provided.")) }, g.setApplicationVersion = function (e) { if ("string" == typeof e || null === e) return b("application.version", e, "setApplicationVersion", !1); (0, l.Z)("Failed to execute setApplicationVersion. Expected <String | null>, but got <".concat(typeof e, ">.")) }, g.start = e => { try { const t = e ? "defined" : "undefined"; (0, a.p)(f.xS, ["API/start/".concat(t, "/called")], void 0, r.D.metrics, p); const n = Object.values(r.D); if (void 0 === e) e = n; else { if ((e = Array.isArray(e) && e.length ? e : [e]).some((e => !n.includes(e)))) return (0, l.Z)("Invalid feature name supplied. Acceptable feature names are: ".concat(n)); e.includes(r.D.pageViewEvent) || e.push(r.D.pageViewEvent) } e.forEach((e => { p.emit("".concat(e, "-opt-in")) })) } catch (e) { (0, l.Z)("An unexpected issue occurred", e) } }, g.interaction = function () { return (new y).get() }; var w = y.prototype = { createTracer: function (e, t) { var n = {}, i = this, o = "function" == typeof t; return (0, a.p)(m + "tracer", [(0, s.z)(), e, n], i, r.D.spa, p), function () { if (h.emit((o ? "" : "no-") + "fn-start", [(0, s.z)(), i, o], n), o) try { return t.apply(this, arguments) } catch (e) { throw h.emit("fn-err", [arguments, this, e], n), e } finally { h.emit("fn-end", [(0, s.z)()], n) } } } }; function A(e, t, n, i) { return function () { return (0, a.p)(f.xS, ["API/" + t + "/called"], void 0, r.D.metrics, p), i && (0, a.p)(e + t, [(0, s.z)(), ...arguments], n ? null : this, i, p), n ? void 0 : this } } function _() { n.e(75).then(n.bind(n, 7438)).then((t => { let { setAPI: n } = t; n(e), (0, c.L)(e, "api") })).catch((() => (0, l.Z)("Downloading runtime APIs failed..."))) } return ["actionText", "setName", "setAttribute", "save", "ignore", "onEnd", "getContext", "end", "get"].forEach((e => { w[e] = A(m, e, void 0, r.D.spa) })), g.noticeError = function (e, t) { "string" == typeof e && (e = new Error(e)), (0, a.p)(f.xS, ["API/noticeError/called"], void 0, r.D.metrics, p), (0, a.p)("err", [e, (0, s.z)(), !1, t], void 0, r.D.jserrors, p) }, u.il ? (0, d.b)((() => _()), !0) : _(), g }(e, y); return (0, g.Qy)(e, T, "api"), (0, g.Qy)(e, D, "exposed"), (0, g.EZ)("activatedFeatures", h.T), T } }, 3325: (e, t, n) => { n.d(t, { D: () => r, p: () => i }); const r = { ajax: "ajax", jserrors: "jserrors", metrics: "metrics", pageAction: "page_action", pageViewEvent: "page_view_event", pageViewTiming: "page_view_timing", sessionReplay: "session_replay", sessionTrace: "session_trace", spa: "spa" }, i = { [r.pageViewEvent]: 1, [r.pageViewTiming]: 2, [r.metrics]: 3, [r.jserrors]: 4, [r.ajax]: 5, [r.sessionTrace]: 6, [r.pageAction]: 7, [r.spa]: 8, [r.sessionReplay]: 9 } } }, r = {}; function i(e) { var t = r[e]; if (void 0 !== t) return t.exports; var a = r[e] = { exports: {} }; return n[e](a, a.exports, i), a.exports } i.m = n, i.d = (e, t) => { for (var n in t) i.o(t, n) && !i.o(e, n) && Object.defineProperty(e, n, { enumerable: !0, get: t[n] }) }, i.f = {}, i.e = e => Promise.all(Object.keys(i.f).reduce(((t, n) => (i.f[n](e, t), t)), [])), i.u = e => "nr-rum-1.246.1.min.js", i.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t), e = {}, t = "NRBA-1.246.1.PROD:", i.l = (n, r, a, o) => { if (e[n]) e[n].push(r); else { var s, c; if (void 0 !== a) for (var d = document.getElementsByTagName("script"), u = 0; u < d.length; u++) { var l = d[u]; if (l.getAttribute("src") == n || l.getAttribute("data-webpack") == t + a) { s = l; break } } s || (c = !0, (s = document.createElement("script")).charset = "utf-8", s.timeout = 120, i.nc && s.setAttribute("nonce", i.nc), s.setAttribute("data-webpack", t + a), s.src = n), e[n] = [r]; var f = (t, r) => { s.onerror = s.onload = null, clearTimeout(g); var i = e[n]; if (delete e[n], s.parentNode && s.parentNode.removeChild(s), i && i.forEach((e => e(r))), t) return t(r) }, g = setTimeout(f.bind(null, void 0, { type: "timeout", target: s }), 12e4); s.onerror = f.bind(null, s.onerror), s.onload = f.bind(null, s.onload), c && document.head.appendChild(s) } }, i.r = e => { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) }, i.p = "https://js-agent.newrelic.com/", (() => { var e = { 50: 0, 832: 0 }; i.f.j = (t, n) => { var r = i.o(e, t) ? e[t] : void 0; if (0 !== r) if (r) n.push(r[2]); else { var a = new Promise(((n, i) => r = e[t] = [n, i])); n.push(r[2] = a); var o = i.p + i.u(t), s = new Error; i.l(o, (n => { if (i.o(e, t) && (0 !== (r = e[t]) && (e[t] = void 0), r)) { var a = n && ("load" === n.type ? "missing" : n.type), o = n && n.target && n.target.src; s.message = "Loading chunk " + t + " failed.\n(" + a + ": " + o + ")", s.name = "ChunkLoadError", s.type = a, s.request = o, r[1](s) } }), "chunk-" + t, t) } }; var t = (t, n) => { var r, a, [o, s, c] = n, d = 0; if (o.some((t => 0 !== e[t]))) { for (r in s) i.o(s, r) && (i.m[r] = s[r]); if (c) c(i) } for (t && t(n); d < o.length; d++)a = o[d], i.o(e, a) && e[a] && e[a][0](), e[a] = 0 }, n = self["webpackChunk:NRBA-1.246.1.PROD"] = self["webpackChunk:NRBA-1.246.1.PROD"] || []; n.forEach(t.bind(null, 0)), n.push = t.bind(null, n.push.bind(n)) })(), (() => { var e = i(50); class t { addPageAction(t, n) { (0, e.Z)("Call to agent api addPageAction failed. The page action feature is not currently initialized.") } setPageViewName(t, n) { (0, e.Z)("Call to agent api setPageViewName failed. The page view feature is not currently initialized.") } setCustomAttribute(t, n, r) { (0, e.Z)("Call to agent api setCustomAttribute failed. The js errors feature is not currently initialized.") } noticeError(t, n) { (0, e.Z)("Call to agent api noticeError failed. The js errors feature is not currently initialized.") } setUserId(t) { (0, e.Z)("Call to agent api setUserId failed. The js errors feature is not currently initialized.") } setApplicationVersion(t) { (0, e.Z)("Call to agent api setApplicationVersion failed. The agent is not currently initialized.") } setErrorHandler(t) { (0, e.Z)("Call to agent api setErrorHandler failed. The js errors feature is not currently initialized.") } finished(t) { (0, e.Z)("Call to agent api finished failed. The page action feature is not currently initialized.") } addRelease(t, n) { (0, e.Z)("Call to agent api addRelease failed. The js errors feature is not currently initialized.") } start(t) { (0, e.Z)("Call to agent api addRelease failed. The agent is not currently initialized.") } } var n = i(3325), r = i(234); const a = Object.values(n.D); function o(e) { const t = {}; return a.forEach((n => { t[n] = function (e, t) { return !1 !== (0, r.Mt)(t, "".concat(e, ".enabled")) }(n, e) })), t } var s = i(7530); var c = i(8e3), d = i(5938), u = i(3960), l = i(385); class f extends d.W { constructor(e, t, n) { let i = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3]; super(e, t, n), this.auto = i, this.abortHandler = void 0, this.featAggregate = void 0, this.onAggregateImported = void 0, !1 === (0, r.Mt)(this.agentIdentifier, "".concat(this.featureName, ".autoStart")) && (this.auto = !1), this.auto && (0, c.R)(e, n) } importAggregator() { let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; if (this.featAggregate) return; if (!this.auto) return void this.ee.on("".concat(this.featureName, "-opt-in"), (() => { (0, c.R)(this.agentIdentifier, this.featureName), this.auto = !0, this.importAggregator() })); const n = l.il && !0 === (0, r.Mt)(this.agentIdentifier, "privacy.cookies_enabled"); let a; this.onAggregateImported = new Promise((e => { a = e })); const o = async () => { let r; try { if (n) { const { setupAgentSession: e } = await i.e(75).then(i.bind(i, 3228)); r = e(this.agentIdentifier) } } catch (t) { (0, e.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.", t) } try { if (!this.shouldImportAgg(this.featureName, r)) return (0, c.L)(this.agentIdentifier, this.featureName), void a(!1); const { lazyFeatureLoader: e } = await i.e(75).then(i.bind(i, 8582)), { Aggregate: n } = await e(this.featureName, "aggregate"); this.featAggregate = new n(this.agentIdentifier, this.aggregator, t), a(!0) } catch (t) { (0, e.Z)("Downloading and initializing ".concat(this.featureName, " failed..."), t), this.abortHandler?.(), (0, c.L)(this.agentIdentifier, this.featureName), a(!1) } }; l.il ? (0, u.b)((() => o()), !0) : o() } shouldImportAgg(e, t) { return e !== n.D.sessionReplay || !!r.Yu.MO && (!1 !== (0, r.Mt)(this.agentIdentifier, "session_trace.enabled") && (!!t?.isNew || !!t?.state.sessionReplayMode)) } } var g = i(7633); class p extends f { static featureName = g.t; constructor(e, t) { let n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, g.t, n), this.importAggregator() } } var h = i(1117), v = i(1284); class m extends h.w { constructor(e) { super(e), this.aggregatedData = {} } store(e, t, n, r, i) { var a = this.getBucket(e, t, n, i); return a.metrics = function (e, t) { t || (t = { count: 0 }); return t.count += 1, (0, v.D)(e, (function (e, n) { t[e] = b(n, t[e]) })), t }(r, a.metrics), a } merge(e, t, n, r, i) { var a = this.getBucket(e, t, r, i); if (a.metrics) { var o = a.metrics; o.count += n.count, (0, v.D)(n, (function (e, t) { if ("count" !== e) { var r = o[e], i = n[e]; i && !i.c ? o[e] = b(i.t, r) : o[e] = function (e, t) { if (!t) return e; t.c || (t = y(t.t)); return t.min = Math.min(e.min, t.min), t.max = Math.max(e.max, t.max), t.t += e.t, t.sos += e.sos, t.c += e.c, t }(i, o[e]) } })) } else a.metrics = n } storeMetric(e, t, n, r) { var i = this.getBucket(e, t, n); return i.stats = b(r, i.stats), i } getBucket(e, t, n, r) { this.aggregatedData[e] || (this.aggregatedData[e] = {}); var i = this.aggregatedData[e][t]; return i || (i = this.aggregatedData[e][t] = { params: n || {} }, r && (i.custom = r)), i } get(e, t) { return t ? this.aggregatedData[e] && this.aggregatedData[e][t] : this.aggregatedData[e] } take(e) { for (var t = {}, n = "", r = !1, i = 0; i < e.length; i++)t[n = e[i]] = w(this.aggregatedData[n]), t[n].length && (r = !0), delete this.aggregatedData[n]; return r ? t : null } } function b(e, t) { return null == e ? function (e) { e ? e.c++ : e = { c: 1 }; return e }(t) : t ? (t.c || (t = y(t.t)), t.c += 1, t.t += e, t.sos += e * e, e > t.max && (t.max = e), e < t.min && (t.min = e), t) : { t: e } } function y(e) { return { t: e, min: e, max: e, sos: e * e, c: 1 } } function w(e) { return "object" != typeof e ? [] : (0, v.D)(e, A) } function A(e, t) { return t } var _ = i(8632), x = i(4402), D = i(4351); var k = i(5546), E = i(7956), j = i(3239), T = i(7894), S = i(9251); class N extends f { static featureName = S.t; constructor(e, t) { let n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, S.t, n), l.il && ((0, E.N)((() => (0, k.p)("docHidden", [(0, T.z)()], void 0, S.t, this.ee)), !0), (0, j.bP)("pagehide", (() => (0, k.p)("winPagehide", [(0, T.z)()], void 0, S.t, this.ee))), this.importAggregator()) } } var C = i(3081); class P extends f { static featureName = C.t9; constructor(e, t) { let n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; super(e, t, C.t9, n), this.importAggregator() } } new class extends t { constructor(t) { let n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : (0, x.ky)(16); super(), l._A ? (this.agentIdentifier = n, this.sharedAggregator = new m({ agentIdentifier: this.agentIdentifier }), this.features = {}, this.desiredFeatures = new Set(t.features || []), this.desiredFeatures.add(p), Object.assign(this, (0, s.j)(this.agentIdentifier, t, t.loaderType || "agent")), this.run()) : (0, e.Z)("Failed to initial the agent. Could not determine the runtime environment.") } get config() { return { info: (0, r.C5)(this.agentIdentifier), init: (0, r.P_)(this.agentIdentifier), loader_config: (0, r.DL)(this.agentIdentifier), runtime: (0, r.OP)(this.agentIdentifier) } } run() { const t = "features"; try { const r = o(this.agentIdentifier), i = [...this.desiredFeatures]; i.sort(((e, t) => n.p[e.featureName] - n.p[t.featureName])), i.forEach((t => { if (r[t.featureName] || t.featureName === n.D.pageViewEvent) { const i = function (e) { switch (e) { case n.D.ajax: return [n.D.jserrors]; case n.D.sessionTrace: return [n.D.ajax, n.D.pageViewEvent]; case n.D.sessionReplay: return [n.D.sessionTrace]; case n.D.pageViewTiming: return [n.D.pageViewEvent]; default: return [] } }(t.featureName); i.every((e => r[e])) || (0, e.Z)("".concat(t.featureName, " is enabled but one or more dependent features has been disabled (").concat((0, D.P)(i), "). This may cause unintended consequences or missing data...")), this.features[t.featureName] = new t(this.agentIdentifier, this.sharedAggregator) } })), (0, _.Qy)(this.agentIdentifier, this.features, t) } catch (n) { (0, e.Z)("Failed to initialize all enabled instrument classes (agent aborted) -", n); for (const e in this.features) this.features[e].abortHandler?.(); const r = (0, _.fP)(); return delete r.initializedAgents[this.agentIdentifier]?.api, delete r.initializedAgents[this.agentIdentifier]?.[t], delete this.sharedAggregator, r.ee?.abort(), delete r.ee?.get(this.agentIdentifier), !1 } } addToTrace(t) { (0, e.Z)("Call to agent api addToTrace failed. The session trace feature is not currently initialized.") } setCurrentRouteName(t) { (0, e.Z)("Call to agent api setCurrentRouteName failed. The spa feature is not currently initialized.") } interaction() { (0, e.Z)("Call to agent api interaction failed. The spa feature is not currently initialized.") } }({ features: [p, N, P], loaderType: "lite" }) })() })();</script>
  <link rel="shortcut icon" href="images/title-icon.png">
<title>Dreamy.ai - Chat and connect with AI Companions</title>
<link rel="canonical" href="https://dreamyai.vip/chart.html">

  <meta name="description"
    content="Engage with Dreamy.ai&#39;s virtual companions for immersive and personalized chats. Dive deep into intricate dialogues, and liberate your imagination. Experience adaptive AI-driven role-plays today.">
  <!-- Facebook Open Graph data -->
  <meta property="og:title" content="Dreamy.ai - Chat and connect with AI Companions">
  <meta property="og:type" content="website">
  <meta property="og:url" content="./chart.html">
  <meta property="og:description"
    content="Engage with Dreamy.ai&#39;s virtual companions for immersive and personalized chats. Dive deep into intricate dialogues, and liberate your imagination. Experience adaptive AI-driven role-plays today.">
  <meta property="og:site_name" content="Dreamy.ai - Chat and connect with AI Companions">
  <meta name="viewport" content="width=device-width,initial-scale=1, maximum-scale=1">
  <meta name="csrf-param" content="authenticity_token">
  <meta name="csrf-token"
    content="zQfHTKKyxPnpqiZHCe2Jxxp3msZwz5sLks8vSYA6RhEhlt6jJe6Z_TZXH6eXrLJHSbhTWBZIHdKqsYhzFrYjHw">

  <link rel="stylesheet" href="./js/application-0f3c2308946d2d1b69e62b0c26417ad898bc6b6a6b7857e90524059e7bb67d30.css"
    data-turbo-track="reload">
  <script src="./js/jquery-3.6.0.min.js.下载"></script>
  <script src="./js/checkout.js.下载"></script>
  <script src="./common/template.js"></script>
</head>

<body class="bg-main conversations show">

  <!-- Google Tag Manager (noscript) -->
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NM6MQN67" height="0" width="0"
      style="display:none;visibility:hidden"></iframe></noscript>
  <!-- End Google Tag Manager (noscript) -->

  <div id="app">
    <div
      class="hidden lg:fixed lg:top-[65px] border-[#363636] border-r lg:inset-y-0 lg:left-0 lg:z-50 lg:block lg:w-20 lg:overflow-y-auto lg:pb-4"
      style="width: 100px; background: linear-gradient(0deg, #131313 0%, #131313 100%)">
      <nav class="mt-8">
        <ul role="list" class="flex flex-col items-center space-y-1">
          <li>
            <a href="./explore.html"
              class="h-[70px] w-[70px]  hover:bg-zinc-700 rounded-[10px] border border-white border-opacity-10 flex-col justify-center items-center gap-2 flex mx-auto cursor-pointer">
              <img src="./images/explore.png" style="width: 24px">
              <div style="color: #90909A;" class="text-center text-white text-xs font-medium leading-tight">Explore
              </div>
            </a>
          </li>
          <li class="pt-3">
            <div style=" border: 1px solid #A34AFF; font-weight: 600;"
              class="pt-3 h-[70px] w-[70px] rounded-[10px] border border-white border-opacity-10 flex-col justify-center items-center gap-2 flex mx-auto">
              <img src="./images/chat-1.png" style="width: 24px">
              <div class="text-center text-white text-xs font-medium leading-tight"
                style="color: #A34AFF;font-weight: 600;">Chat</div>
            </div>
          </li>
          <li class="pt-3">
            <a href="./create1.html"
              class="relative h-[70px] w-[70px] hover:bg-zinc-700  rounded-[10px] border border-white border-opacity-10 flex-col justify-center items-center gap-2 flex mx-auto cursor-pointer">
              <img src="./images/create.png" style="width: 24px">
              <div style="color: #90909A;" class="w-16 text-center text-white text-xs font-medium leading-none">Create
              </div>
            </a>
          </li>
          <li class="pt-3">
            <a href="./myai.html"
              class="h-[70px] w-[70px] hover:bg-zinc-700  rounded-[10px] border border-white border-opacity-10 flex-col justify-center items-center gap-2 flex mx-auto cursor-pointer">
              <img src="./images/myai.png" style="width: 24px">
              <div style="color: #90909A;" class="w-16 text-center text-white text-xs font-medium leading-none">My AI
              </div>
            </a>
          </li>
        </ul>
        <div class="left-[15px] bottom-[20px] absolute flex-col justify-start items-start gap-2 inline-flex">

          <div
            class="py-2 w-[70px] hover:bg-gray-700 rounded-[10px] border border-white border-opacity-10 flex-col justify-center items-center gap-2 flex mx-auto cursor-pointer toggle-popup"
            @click='feedbackmodal = !feedbackmodal'>
            <div class="text-center text-white text-xs font-medium leading-tight">Contact</div>
          </div>
          <a target="_blank" href="https://find-heart.cn-sh2.ufileos.com/sugar/service/Terms%20of%20Service.pdf"
            class=" w-[70px] flex-col justify-center items-center gap-2 flex mx-auto cursor-pointer">
            <div class="text-center text-white text-[8px] font-medium leading-[14px]">Terms of Service</div>
          </a>
          <a target="_blank"  href="https://find-heart.cn-sh2.ufileos.com/sugar/service/Privacy%20Policies.pdf"
            class=" w-[70px] flex-col justify-center items-center gap-2 flex mx-auto cursor-pointer">
            <div class="text-center text-white text-[8px] font-medium leading-[14px]">Privacy
              Policy</div>
          </a>
        </div>
      </nav>
    </div>

    <contact v-if='feedbackmodal'></contact>

    <html-header></html-header>
    <turbo-cable-stream-source channel="Turbo::StreamsChannel"
      signed-stream-name="IloybGtPaTh2WTJoaGRDMWphR0YwTDFWelpYSXZORGd5TnpNeDpjaGFyYWN0ZXJfY3JlYXRlZF90b2FzdCI=--71229bb74e15d5f0a7076213ac989ab47b655bbe0ac86c3a22aa383f0230bd68">
    </turbo-cable-stream-source>
    <div id="character-created-toast"></div>
    <div id="conversation-container"
      class="fixed bottom-0 top-0 text-xs lg:flex lg:flex-grow fill-available w-full rounded-lg lg:pl-[440px] pr-0"
      style="background-size: cover; background-image: url(/assets/pattern-73e01b5144fed554ae9bf7baf0280ee22448f1dfc05ef616e85bef1e486c37cc.png);"
      data-controller="profile-toggle" data-paid-user="false">
      <div
        class="mt-16 lg:w-[70%] text-xs flex flex-col flex-grow rounded-lg shadow-xl overflow-hidden messages-container"
        data-target="profile-toggle.messagesContainer" v-if="showmessage">
        <turbo-cable-stream-source channel="Turbo::StreamsChannel"
          signed-stream-name="IloybGtPaTh2WTJoaGRDMWphR0YwTDBOdmJuWmxjbk5oZEdsdmJpODNOell5TXpZOnBmcF9iYW5uZXIi--e2d4eee376c356841a9d14394fbc63a89f5fefd27872ba2732be1a1788f23bf8">
        </turbo-cable-stream-source>
        <div id="pfp-banner-container" class="lg:relative fixed w-full z-10">
          <div class="relative h-[68px] bg-main md:h-[88px] relative border-[#363636] border-b flex lg:justify-between">
            <div class="items-center gap-3.5 lg:hidden inline-flex items-center relative py-2 ml-[20px]">
              <a @click="showmessage = false, showlist = true" class="block lg:hidden">
                <img src="./js/left-arrow-198ce01386bf370e33697c53d1cf90f5e8107c896bd0a849f0d1f67acf905c85.svg"
                  class="">
              </a>
            </div>
            <div class="justify-start items-center gap-3.5 inline-flex items-center relative py-2 ml-[20px]">
              <div class="md:w-[58px] md:h-[58px] w-[44px] h-[44px] relative" id="change-pfp-banner">
                <img
                  class="cursor-pointer inline-flex lg:hidden md:w-[58px] md:h-[58px] w-[44px] h-[44px] object-cover object-top left-0 top-0 absolute rounded-full"
                  :src="toUserInfo?.coverUrl">
                <img data-action="click-&gt;profile-toggle#toggle"
                  class="cursor-pointer hidden lg:inline-flex md:w-[58px] md:h-[58px] w-[44px] h-[44px] object-cover object-top left-0 top-0 absolute rounded-full"
                  :src="toUserInfo?.coverUrl">
              </div>
              <div class="flex-col justify-start items-start gap-1 inline-flex">
                <div class="text-white text-[20px] font-semibold leading-[30px]">{{toUserInfo?.aiName}}</div>
              </div>
            </div>
            <div
              class="hidden lg:inline-flex bg-neutral-900 p-5 bg-opacity-70 justify-ends items-center gap-3.5 inline-flex items-center relative py-2 ml-5"
              @click="isShowRightMessage = !isShowRightMessage">
              <img class="w-10 h-10 cursor-pointer"
                src="./js/toggle-button-be709e4c23c9b8bd0970362aefafe45971c1bb5dc441ee71b92ddf359c438bf2.svg"
                data-action="click-&gt;profile-toggle#toggle">
            </div>
            <div
              class="w-12 h-[60px] right-0 top-0 absolute flex-col justify-center items-center inline-flex lg:hidden">
              <img class="w-8 h-8 cursor-pointer"
                @click="showMessage = !showMessage, isShowRightMessage = !isShowRightMessage"
                src="./js/mobile-toggle-1ff571b16d07ad1faec84cefdb831084fe6e0f737f3b9bc9aa054e0f755f538f.svg">
            </div>
          </div>

        </div>
        <div id="messages" class="scrollbar lg:h-full h-[calc(100vh-16rem)] p-4 overflow-auto pt-[74px] lg:pt-0"
          v-if="showMessage">

          <div id="message_stream_482731" class="mb-4">
            <div id="messages-list">
              <div v-for='(item, index) in recordsList'>
                <div id="message_id_15136054" class="mt-5 user-message flex justify-end text-right mb-2"
                  v-if='item.messageQ' data-message-scroll-lazy-loaded="false"
                  data-controller="disable-save-image message-scroll">
                  <div class="flex-col gap-[9px] inline-flex">
                    <div
                      class="p-3 bg-neutral-800 rounded-tl-2xl rounded-bl-2xl rounded-br-2xl justify-start items-start gap-2.5 inline-flex"
                      style="background: #2C2C3D">
                      <div class="text-white text-sm font-normal leading-normal">
                        {{item.messageQ}}
                      </div>
                    </div>
                    <div class="text-neutral-500 text-[13px] font-normal"> {{item.time}} </div>
                  </div>
                </div>
                <div id="message_id_15135958" class="user-response px-4 py-2 rounded-md group"
                  data-message-scroll-lazy-loaded="false" data-controller="disable-save-image message-scroll">

                  <div class="lg:w-[100%] w-full flex-col justify-start items-start gap-[9px] inline-flex">
                    <div>


                      <div style="max-width: 90%;position: relative;min-width: 200px;"
                        class="mb-4 mt-2 p-1 bg-secondary rounded-tr-[10px] rounded-bl-[10px] rounded-br-[10px] justify-start items-start gap-2.5 flex relative"
                        style="background:#A06ED4">
                        <div id="message-feedback_15136073" style='left:0;bottom:-36px;'
                          class="w-20 h-9 justify-start items-start gap-2 inline-flex absolute  bottom-[-40px] right-[10px] lg:right-[-90px]">
                          <div class="w-9 h-9 relative" v-if='item.isLike === 0 || item.isLike === 1'>
                            <div class="w-9 h-9 left-0 top-0 absolute bg-zinc-900 rounded-full active"></div>
                            <a data-turbo-stream="true" data-method="get">
                              <img v-if='item.isLike === 0' @click='dianzan(1, item)'
                                class="w-5 h-5 left-[8px] top-[8px] absolute cursor-pointer"
                                src="./js/thumbs-up-6d117fd9ed5c8dca9ec939aa30ad3473f5084a4eb6dec5749b5b870ad9935702.svg">
                              <img v-if='item.isLike === 1' class="w-5 h-5 left-[8px] top-[8px] absolute cursor-pointer"
                                src="./images/zan.png" v-if='item.isLike === 1'>
                            </a>
                          </div>
                          <div class="w-9 h-9 relative" v-if='item.isLike === 0 || item.isLike === 2'>
                            <div class="w-9 h-9 left-0 top-0 absolute bg-zinc-900 rounded-full"></div>
                            <a data-turbo-stream="true" data-method="get">
                              <img v-if='item.isLike === 0' @click='dianzan(2, item)'
                                class="w-5 h-5 left-[8px] top-[8px] absolute cursor-pointer"
                                src="./js/thumbs-down-3303f2abb7f350ea19acd7d5fdb3cdf9098398b3261289546349d7ec544446a6.svg">
                              <img v-if='item.isLike === 2' class="w-5 h-5 left-[8px] top-[8px] absolute cursor-pointer"
                                src="./images/cai.png" v-if='item.isLike === 2'>
                            </a>
                          </div>
                        </div>

                        <div class="text-white text-sm font-normal leading-normal">
                          <div>
                            <div v-html="renderMarkdown(item.messageA)" v-if="item.messageA"></div>
                            <p v-if='item.picUrl'><img :src="item.picUrl"
                                style='width: 100%;max-width: 481px; border-radius: 10px;' alt="">

                            <div class="absolute z-10" v-if='item.picUrl' style='top: 0;right:50px'>
                              <div>
                                <button type="button" class="see-more absolute left-0 p-3"
                                  @click.stop="cliTab(item,index)">
                                  <div
                                    class="w-[27px] cursor-pointer h-[27px] bg-neutral-500 bg-opacity-50 rounded-[50px] border border-white border-opacity-20 backdrop-blur-[30px] justify-center items-center inline-flex">
                                    <img class="pfp-button" src="./images/more.svg">
                                  </div>
                                </button>
                                <div v-if='item.modal === true'
                                  class="bg-zinc-900 w-fit border border-white/[.15] left-[13px] absolute top-[34px] z-10 mt-2.5 origin-top-right rounded-lg shadow-lg focus:outline-none"
                                  style="width: 220px;">
                                  <button style='width: 100%'
                                    class="justify-start w-[204px] hover:bg-zinc-800 h-11 px-4 py-2.5 bg-zinc-900 rounded-[10px] justify-start items-center gap-2 inline-flex">
                                    <img class="w-5 h-5 relative" src="./images/pic.png">
                                    <div @click='setCli(item),event.stopPropagation()'
                                      class="text-white text-sm font-semibold font-['Poppins'] leading-normal">Set as
                                      Profile picture
                                        </div>
                                  </button>
                                </div>
                              </div>
                            </div>

                            </p>
                            <div v-if='!item.messageA && !item.picUrl' style="width: 100%;">
                              <div v-if='item.type === 1'>loading...</div>
                              <!--   loading...-->
                              <!--  <div style='width: 100px;height: 100px;' class="circleChart" data-value="100">-->
                              <!--  <img style='width: 100%;max-width: 481px; border-radius: 10px;height: 220px'
                                src="./images/loading.gif"  style='width: 100%;max-width: 481px; border-radius: 10px;height: 220px' alt="">-->
                              <!--  <createloading style="width: 100%;max-width: 481px; border-radius: 10px;height: 220px" />-->
                              <div style="width: 100%;max-width: 481px; border-radius: 10px;height: 220px"
                                v-if='item.type === 2'>
                                <div id="image-loader-container" style="width: 100%;height: 100%;"
                                  data-controller="percentage-counter"
                                  class="flex justify-center items-center h-screen mx-auto md:w-[760px] w-fit mx-10 md:mb-6 mb-[72px] max-w-2xl lg:max-w-none relative bg-zinc-900 rounded-lg border border-zinc-800">
                                  <div class="mx-12">
                                    <div class="w-24 h-24 m-auto relative" style="
	  border-radius: 50%;
	  display: flex;
	  align-items: center;">
                                      <svg class="image-loader" xmlns="http://www.w3.org/2000/svg" width="98"
                                        height="98" viewBox="0 0 98 98" fill="none">
                                        <path
                                          d="M3.675 49C1.64535 49 -0.0143422 50.6477 0.137726 52.6716C0.768717 61.0698 3.55614 69.1861 8.25799 76.2229C13.6422 84.2809 21.2949 90.5614 30.2485 94.2701C39.2021 97.9788 49.0544 98.9492 58.5594 97.0585C68.0645 95.1678 76.7955 90.501 83.6482 83.6482C90.501 76.7955 95.1678 68.0645 97.0585 58.5594C98.9492 49.0544 97.9788 39.2021 94.2701 30.2485C90.5614 21.2949 84.281 13.6422 76.2229 8.25799C69.1861 3.55615 61.0698 0.768719 52.6716 0.137727C50.6477 -0.0143419 49 1.64535 49 3.675C49 5.70465 50.6486 7.33316 52.6704 7.51201C59.613 8.12617 66.3118 10.4754 72.1395 14.3693C78.9888 18.9459 84.3272 25.4507 87.4796 33.0612C90.632 40.6718 91.4568 49.0462 89.8497 57.1255C88.2426 65.2048 84.2759 72.6261 78.451 78.451C72.6261 84.2759 65.2048 88.2426 57.1255 89.8497C49.0462 91.4568 40.6718 90.632 33.0612 87.4796C25.4507 84.3272 18.9458 78.9888 14.3693 72.1395C10.4754 66.3118 8.12617 59.613 7.51201 52.6703C7.33316 50.6486 5.70465 49 3.675 49Z"
                                          fill="url(#paint0_angular_4678_15737)"></path>
                                        <defs>
                                          <radialgradient id="paint0_angular_4678_15737" cx="0" cy="0" r="1"
                                            gradientUnits="userSpaceOnUse"
                                            gradientTransform="translate(49 49) rotate(164.055) scale(44.5907 41.6811)">
                                            <stop stop-color="#E75275"></stop>
                                            <stop offset="0.302083" stop-color="#E75275"></stop>
                                          </radialgradient>
                                        </defs>
                                      </svg>
                                      <div data-percentage-counter-target="display" style="line-height: inherit;"
                                        class="text-center left-0 right-0 top-[25px] text-rose-400 text-md font-semibold leading-loose m-auto absolute justify-center items-center">
                                        {{minuTime}}%</div>
                                    </div>
                                    <div class="flex-col justify-center items-center gap-2 flex mt-5">
                                      <div class="text-white text-base font-semibold leading-relaxed">Please wait!</div>
                                      <div class="text-neutral-200 text-sm font-medium leading-tight">
                                        {{toUserInfo?.aiName}} is
                                        taking a picture</div>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                        <div class="absolute right-3 top-[4px]">

                          <!-- <div class="progress-container" data-controller="load-audio">
                          <a data-turbo-stream="true"
                            class="button-audio button-transform cursor-pointer w-7 h-7 p-1 justify-center items-center inline-flex rounded-full bg-white"
                            data-remote="true">
                            <div class="w-5 h-5 relative">
                              <div data-load-audio-target="playIcon">
                                <svg id="play-icon" class="text-[#C14DA0]" xmlns="http://www.w3.org/2000/svg"
                                  fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
                                  <path stroke-linecap="round" stroke-linejoin="round"
                                    d="M19.114 5.636a9 9 0 010 12.728M16.463 8.288a5.25 5.25 0 010 7.424M6.75 8.25l4.72-4.72a.75.75 0 011.28.53v15.88a.75.75 0 01-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.01 9.01 0 012.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75z">
                                  </path>
                                </svg>
                              </div>
                              <div data-load-audio-target="pauseIcon" class="hidden">
                                <svg id="pause-icon" class="text-[#C14DA0]" fill="none" viewBox="0 0 24 24"
                                  stroke-width="3" stroke="currentColor">
                                  <path stroke-linecap="round" stroke-linejoin="round"
                                    d="M15.75 5.25v13.5m-7.5-13.5v13.5">
                                  </path>
                                </svg>
                              </div>
                            </div>
                          </a>
                        <div class="progress-ring"></div>
                        </div>-->
                        </div>
                      </div>
                      <div style="cursor: pointer;margin-top: -10px;text-align: right;margin-left:80px;"
                        @click='refreshCli(item)' v-if='index === recordsList.length-1 && item.refreshState == 0'>
                        <img src="./images/sx.png" :id="rotateState ===1? 'rotateImg': ''"
                          style='width: 15px;height: 15px;display:inline-block;' alt="">
                        <p style='color: white;display:inline-block;margin-left: 10px;'>refresh</p>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>

        <div id="form" class="z-10 h-[40px] fixed w-full bottom-[75px] lg:relative lg:bottom-[17px]" v-if="showMessage">
          <div data-turbo="true" class="new_message" id="new_message">
            <div class="flex flex-row items-center h-12 w-full px-4">
              <div class="flex w-full relative" data-controller="message-ask">
                <div x-data="{ open: false }" @keydown.escape="open = false" @click.away="open = false" class="w-full">
                  <div
                    class="bg-[#252525] justify-between rounded-xl border-none placeholder-[#E0E0E0] text-white no-focus-border flex items-center h-12 w-full px-3 text-[16px]">
                    <input data-message-ask-target="inputField" data-message-form-target="messageInput"
                      v-on:input="bindInput" placeholder="Type a message" v-model='sendText' autocomplete="off"
                      @keydown.enter="sendCli"
                      class="px-1 bg-[#252525] border-none placeholder-[#E0E0E0] text-white w-[87%] no-focus-border flex items-center text-[16px]"
                      required="required" type="text" id="message_body">
                    <button type="button" data-action="click-&gt;message-ask#hideWalk"
                      class="w-[95px] md:w-fit h-7 p-1 bg-neutral-700 rounded-md items-center gap-1 inline-flex cursor-pointer "
                      id="ask-button">
                      <div
                        class='w-[95px] md:w-fit h-7 p-1 bg-neutral-700 rounded-md items-center gap-1 inline-flex cursor-pointer '
                        @click="showMsg = !showMsg">
                        <img class="w-5 h-5 relative"
                          src="./js/ask-pic-5a389368eeb83c8ee483a399f6fdd37c9831bae007c745fbd9971638744a737f.svg">
                        <div class="text-white text-sm font-medium leading-tight">Ask</div>
                        <img class="w-5 h-5 relative"
                          src="./js/ask-arrow-5e9e3d502459a09cc6f7a6face21c887f7e5ff747265bdf33f1cc5eb16098469.svg">
                      </div>
                    </button>
                  </div>
                  <div v-if='showMsg' @keydown.arrow-up.prevent="" @keydown.arrow-down.prevent=""
                    @keydown.tab="open = false" @keydown.enter.prevent="open = false"
                    class="absolute right-0 top-[-200px] z-10 mt-0.5 origin-top-right rounded-lg shadow-lg focus:outline-none"
                    style="display: inline-block;">
                    <div class="w-40 h-44 rounded-lg flex-col justify-start items-start inline-flex">
                      <div v-for='(item, index) in ltList' @click='sendText = item;showMsg = false;sendImg = true'>
                        <div data-action="click-&gt;message-ask#appendText"
                          class="cursor-pointer px-4 py-2.5 bg-zinc-900 hover:bg-zinc-800 rounded-tl-lg rounded-tr-lg justify-start items-center gap-2 inline-flex">
                          <div class="w-32 text-white text-xs font-medium leading-none">{{item}}</div>
                        </div>
                        <div class="self-stretch h-px border border-neutral-700"></div>
                      </div>
                      <div id="how-to-use"
                        class="cursor-pointer px-4 py-2.5 bg-zinc-900 hover:bg-zinc-800 rounded-bl-lg rounded-br-lg justify-start items-center gap-1 inline-flex">
                        <img class="w-3.5"
                          src="./js/ask-info-58ff8a30c19abea362c08be2ec567aac1e505f43df9b5fd8de967c47a018fbb0.svg">
                        <div @click="modelOpen =!modelOpen" class="w-28 text-white text-xs font-medium leading-none">
                          How to use</div>
                      </div>
                      <div class="fixed inset-0 z-50 overflow-y-auto" v-if='modelOpen' style="display: inline-block;">
                        <div
                          class="flex items-end justify-center min-h-screen px-4 text-center md:items-center sm:block sm:p-0">
                          <div @click="modelOpen = false"
                            x-transition:enter="transition ease-out duration-300 transform"
                            x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100"
                            x-transition:leave="transition ease-in duration-200 transform"
                            x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"
                            class="fixed top-0 left-0 right-0 bottom-0 z-50 bg-black bg-opacity-50 backdrop-blur-sm  email-modal modal-backdrop feedback-modal"
                            aria-hidden="true" style="display: inline-block;"></div>
                          <div x-transition:enter="transition ease-out duration-300 transform"
                            x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
                            x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100"
                            x-transition:leave="transition ease-in duration-200 transform"
                            x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100"
                            x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
                            class="max-w-[320px] relative bg-zinc-900 z-50 text-left rounded-lg border border-zinc-800 inline-block mt-20 mb-[150px] md:mb-20 overflow-hidden transition-all transform"
                            style="position: absolute;
                            left: 0;
                            right: 0;
                            top: 0;
                            bottom: 0;
                            margin: auto;
                            height: 250px;">
                            <div class="border-b border-zinc-800 p-3 flex">
                              <div class="justify-start items-center gap-1 inline-flex">
                                <img class="w-6 h-6 relative"
                                  src="./js/ask-info-58ff8a30c19abea362c08be2ec567aac1e505f43df9b5fd8de967c47a018fbb0.svg">
                                <div class="text-white text-base font-semibold leading-relaxed">How to use</div>
                              </div>
                            </div>
                            <button @click="closeOther" type="button"
                              class="w-6 h-6 top-[12px] right-[12px] text-white absolute">
                              <span class="sr-only">Close</span>
                              <svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
                                stroke="currentColor" aria-hidden="true">
                                <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12">
                                </path>
                              </svg>
                            </button>
                            <div class="p-4 flex-col flex" data-message-ask-target="step">
                              <div class="justify-start gap-3 inlin-flex flex-col flex">
                                <div class="text-white text-base font-semibold leading-relaxed">How to Prompt for
                                  Images</div>
                                <div class="text-neutral-200 text-sm leading-tight">Start your request using one of
                                  these phrases:</div>
                                <div class="text-white text-sm leading-tight">
                                  <ul class="list-disc ml-4">
                                    <li>Send me...</li>
                                    <li>Show me...</li>
                                    <li>Can I see...</li>
                                    <li>Send...</li>
                                  </ul>
                                </div>

                              </div>
                            </div>
                            <div class="p-4 flex-col flex hidden" data-message-ask-target="step">
                              <div class="justify-start gap-3 inlin-flex flex-col flex">
                                <div class="text-white text-base font-semibold leading-relaxed">Complete the
                                  sentence by specifying what you'd like to see.</div>
                                <div class="text-neutral-200 text-sm leading-tight">Examples:</div>
                                <div class="text-white text-sm leading-tight">
                                  <ul class="list-disc ml-4">
                                    <li>"Send me a selfie"</li>
                                    <li>"Show me your face"</li>
                                    <li>"Can I see a picture of you"</li>
                                  </ul>
                                </div>
                                <div class="flex items-center mt-5">
                                  <div class="text-white text-xxs font-medium leading-none">Step 2 of 2</div>
                                  <div class="ml-auto gap-3 flex">
                                    <div class="inline-flex" data-action="click-&gt;message-ask#prev">
                                      <div
                                        class="cursor-pointer px-4 py-2 border-2 border-[#A4A4A4] rounded-lg justify-center items-center gap-2.5 flex">
                                        <div class="text-center text-white text-xs font-medium leading-tight">Prev
                                        </div>
                                      </div>
                                    </div>
                                    <div class="inline-flex" data-action="click-&gt;message-ask#prevDelayed">
                                      <button @click="modelOpen = false" type="button"
                                        class="px-4 py-2.5 bg-rose-400 rounded-lg justify-center items-center gap-2.5 flex">
                                        <div class="text-center text-white text-xs font-medium leading-tight">Got
                                          it!</div>
                                      </button>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>

                </div>
                <div id="image-tips"></div>
              </div>
              <input value="9" autocomplete="off" type="hidden" name="message[profile_id]" id="message_profile_id">
              <input autocomplete="off" type="hidden" name="message[body]" id="message_body">
              <div id="message-button">
                <div @click='sendCli' id="send-question" v-if="!sendImg"
                  class="flex items-center justify-center pl-4 py-1 flex-shrink-0">
                  <div class="w-11 h-11 p-3 bg-primary rounded-lg justify-center items-center inline-flex"
                    style="position: relative;">

                    <img src="./images/23.png">
                  </div>
                </div>
                <div id="send-question-with-token" @click='sendCli' v-if="sendImg"
                  class=" flex items-center justify-center pl-4 py-2 flex-shrink-0">
                  <div class="flex flex-col items-center bg-primary rounded-b-lg"
                    style="overflow: hidden; border-radius: 6px;">
                    <div class="w-11 h-[20px]  rounded-t-lg justify-center items-center inline-flex"
                      style="background: rgba(255, 160, 160, 0.37);    border-radius: 6px 6px 0 0;">
                      <img class="w-3 h-3" src="./images/1.png">
                      <div class="text-white ml-1">200</div>
                    </div>
                    <div class="w-11 h-7 py-1 bg-primary rounded-b-lg justify-center items-center inline-flex">
                      <img class="w-5 h-5" src="./images/23.png">
                    </div>
                  </div>
                </div>

              </div>
            </div>
          </div>
        </div>

      </div>
      <div class="pt-16 lg:w-[30%] lg:max-w-[400px] overflow-auto h-full profile-container lg:block"
        data-target="profile-toggle.profileContainer" v-if="isShowRightMessage">
        <div id="profile-partial-turbo">
          <div class="relative bg-neutral-900">
            <div class="w-full h-auto relative" id="pfp-carousel">
              <div class="carousel">
                <div :class="activeKey === index? 'carousel-item active':'carousel-item'"
                  v-for='(item, index) in toUserInfo?.photoList' :key='index'>
                  <img class="w-full object-top object-cover h-[483px]" :src="item">
                </div>
              </div>
              <div class="carousel-dots absolute bottom-[20px] left-1/2 transform -translate-x-1/2">
                <span
                  :class="activeKey === 0? 'dot inline-block w-[10px] h-[10px] bg-gray-400 rounded-full mx-1 cursor-pointer active': 'dot inline-block w-[10px] h-[10px] bg-gray-400 rounded-full mx-1 cursor-pointer'"
                  data-index="0"></span>
                <span
                  :class="activeKey === 1? 'dot inline-block w-[10px] h-[10px] bg-gray-400 rounded-full mx-1 cursor-pointer active': 'dot inline-block w-[10px] h-[10px] bg-gray-400 rounded-full mx-1 cursor-pointer'"
                  data-index="1"></span>
                <span
                  :class="activeKey === 2? 'dot inline-block w-[10px] h-[10px] bg-gray-400 rounded-full mx-1 cursor-pointer active': 'dot inline-block w-[10px] h-[10px] bg-gray-400 rounded-full mx-1 cursor-pointer'"
                  data-index="2"></span>
              </div>
              <div @click='setActive(0)'
                class="w-10 h-10 absolute absolute top-1/2 transform -translate-y-1/2 left-[20px] bg-neutral-500 bg-opacity-30 rounded-full border border-stone-300 backdrop-blur-[10px] rounded-full cursor-pointer">
                <img class="relative top-[2px] w-[35px] h-[35px]"
                  src="./js/left-arrow-198ce01386bf370e33697c53d1cf90f5e8107c896bd0a849f0d1f67acf905c85.svg">
              </div>
              <div @click='setActive(1)'
                class="w-10 h-10 absolute absolute top-1/2 transform -translate-y-1/2 right-[10px] bg-neutral-500 bg-opacity-30 rounded-full border border-stone-300 backdrop-blur-[10px] rounded-full cursor-pointer">
                <img class="relative top-[2px] left-[2px] w-[35px] h-[35px]"
                  src="./js/right-arrow-9f1d72f25b3acb10bcd60199a3aad0c2ada476396565699d30ef005364d79c2b.svg">
              </div>

              <div class="flex absolute cursor-pointer top-[30px] left-[25px] profile-back-button block lg:hidden"
                @click="isShowRightMessage = !isShowRightMessage"
                data-action="click-&gt;profile-toggle#toggleProfileBack">
                <img src="./js/left-arrow-198ce01386bf370e33697c53d1cf90f5e8107c896bd0a849f0d1f67acf905c85.svg">
                <div class="text-white text-sm font-semibold leading-normal">Back</div>
              </div>

            </div>
            <div class="flex-col justify-start items-center gap-6">
              <div class="flex-col justify-start items-start gap-1 flex p-6">
                <div class="text-white text-md font-semibold leading-[34px]">{{toUserInfo?.aiName}}

                </div>
                <div class="text-zinc-300 text-sm font-normal leading-normal">{{toUserInfo?.description}}
                </div>
              </div>
              <div class="h-[0px] opacity-20 border border-white"></div>
              <div class="flex-col justify-start items-start gap-6 flex p-6">
                <div class="justify-start items-center gap-[107px] inline-flex">
                  <div class="text-neutral-400 text-sm font-semibold leading-normal">Personality Attributes:</div>
                </div>
                <div class="grid grid-cols-2 gap-2 w-full">
                  <div class="flex my-2">
                    <div
                      class="w-[34px] h-[34px] p-[7px] rounded-[100px] border border-white border-opacity-20 justify-center items-center inline-flex">
                      <div class="w-5 h-5 relative flex-col justify-start items-start flex">
                        <div>
                          <img class="w-5 h-5 relative"
                            src="./js/personality-a4c9260a88fff24c959471bab09eea3c18e380b4b481777a37c7d7ee488ac65b.svg">
                        </div>
                      </div>
                    </div>
                    <div class="ml-2">
                      <div class="text-zinc-400 text-[11px] font-normal uppercase leading-[14px]">Personality</div>
                      <div class="text-xs text-white text-[13px] font-medium leading-tight pt-1">
                        {{toUserInfo?.personality}}</div>
                    </div>
                  </div>
                  <div class="flex my-2">
                    <div
                      class="w-[34px] h-[34px] p-[7px] rounded-[100px] border border-white border-opacity-20 justify-center items-center inline-flex">
                      <div class="w-5 h-5 relative flex-col justify-start items-start flex">
                        <div>
                          <img class="w-5 h-5 relative"
                            src="./js/occupation-550c9ab6a67fd213421ef0232e9ea31ea6af2bc9c710ea5709c0da6a45117150.svg">
                        </div>
                      </div>
                    </div>
                    <div class="ml-2">
                      <div class="text-zinc-400 text-[11px] font-normal uppercase leading-[14px]">Occupation</div>
                      <div class="text-xs text-white text-[13px] font-medium leading-tight pt-1">
                        {{toUserInfo?.occupation}}</div>
                    </div>
                  </div>
                  <div class="flex my-2">
                    <div
                      class="w-[34px] h-[34px] p-[7px] rounded-[100px] border border-white border-opacity-20 justify-center items-center inline-flex">
                      <div class="w-5 h-5 relative flex-col justify-start items-start flex">
                        <div>
                          <img class="w-5 h-5 relative"
                            src="./js/hobbies-2bca7f86653dead89e0173edcd767b19f8d929092d93a61be7bde63a9d7f5d86.svg">
                        </div>
                      </div>
                    </div>
                    <div class="ml-2">
                      <div class="text-zinc-400 text-[11px] font-normal uppercase leading-[14px]">Hobbies</div>
                      <div class="text-xs text-white text-[13px] font-medium leading-tight pt-1">
                        {{toUserInfo?.hobbies}}
                      </div>
                    </div>
                  </div>
                  <div class="flex my-2">
                    <div
                      class="w-[34px] h-[34px] p-[7px] rounded-[100px] border border-white border-opacity-20 justify-center items-center inline-flex">
                      <div class="w-5 h-5 relative flex-col justify-start items-start flex">
                        <div>
                          <img class="w-5 h-5 relative"
                            src="./js/roleplay-485465ce774939a7ffac545c651878db6b2109f4d53db061252917774bb22fc9.svg">
                        </div>
                      </div>
                    </div>
                    <div class="ml-2">
                      <div class="text-zinc-400 text-[11px] font-normal uppercase leading-[14px]">Relationship</div>
                      <div class="text-xs text-white text-[13px] font-medium leading-tight pt-1">
                        {{toUserInfo?.relationship}}</div>
                    </div>
                  </div>
                </div>
              </div>
              <div class="h-[0px] opacity-20 border border-white"></div>
              <div class="flex-col justify-start items-start gap-6 flex p-6 lg:mb-0 mb-[58px]">
                <div class="text-neutral-400 text-sm font-semibold leading-normal">Physical Attributes:</div>
                <div class="grid grid-cols-2 gap-2 w-full">
                  <div class="flex my-2">
                    <div
                      class="w-[34px] h-[34px] p-[7px] rounded-[100px] border border-white border-opacity-20 justify-center items-center inline-flex">
                      <div class="w-5 h-5 relative flex-col justify-start items-start flex">
                        <div>
                          <img class="w-5 h-5 relative"
                            src="./js/body-04409ec26934e281206103a898fba6d9cb58e0465bf6d3d1f6ee1b2e5286a428.svg">
                        </div>
                      </div>
                    </div>
                    <div class="ml-2">
                      <div class="text-zinc-400 text-[11px] font-normal uppercase leading-[14px]">Body</div>
                      <div class="text-xs text-white text-[13px] font-medium leading-tight pt-1">
                        {{toUserInfo?.bodyType}}
                      </div>
                    </div>
                  </div>
                  <div class="flex my-2">
                    <div
                      class="w-[34px] h-[34px] p-[7px] rounded-[100px] border border-white border-opacity-20 justify-center items-center inline-flex">
                      <div class="w-5 h-5 relative flex-col justify-start items-start flex">
                        <div>
                          <img class="w-5 h-5 relative"
                            src="./js/age-afc9b4205075b5e983b826b572268a71ee58fb345d62084c4d0bcb886ce21cfa.svg">
                        </div>
                      </div>
                    </div>
                    <div class="ml-2">
                      <div class="text-zinc-400 text-[11px] font-normal uppercase leading-[14px]">Age</div>
                      <div class="text-xs text-white text-[13px] font-medium leading-tight pt-1">{{toUserInfo?.age}}
                      </div>
                    </div>
                  </div>
                  <div class="flex my-2">
                    <div
                      class="w-[34px] h-[34px] p-[7px] rounded-[100px] border border-white border-opacity-20 justify-center items-center inline-flex">
                      <div class="w-5 h-5 relative flex-col justify-start items-start flex">
                        <div>
                          <img class="w-5 h-5 relative"
                            src="./js/ethinicity-ab6ac85fd6471ad23846fe6f43806c6d0d2457fae3223a8d4c951f3147997dd7.svg">
                        </div>
                      </div>
                    </div>
                    <div class="ml-2">
                      <div class="text-zinc-400 text-[11px] font-normal uppercase leading-[14px]">Ethnicity</div>
                      <div class="text-xs text-white text-[13px] font-medium leading-tight pt-1">
                        {{toUserInfo?.ethnicity}}</div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>

        </div>
      </div>
    </div>
    <div id="user-registration-modal"></div>
    <div id="user-banned-modal"></div>
    <div id="feedback-modal"></div>
    <div id="become-premium-voice-modal" class="lg:pl-[30rem]"></div>
    <div id="become-premium-photo-modal" class="lg:pl-[30rem]"></div>
    <div id="insufficiant-tokens-modal" class="lg:pl-[30rem]"></div>
    <div id="become-premium-messages-modal"></div>
    <div id="message-regenerate-modal"></div>
    <div id="regenerate-message-javascript"></div>
    <script>
      fbq('track', 'ViewContent');
    </script>



    <aside v-if="showlist"
      class="scrollbar fixed bg-[#1A1A1A] bottom-0 left-0 lg:left-[100px] top-12 w-full lg:w-[340px] overflow-y-auto px-6 pt-6 pb-[100px] lg:pb-6 xl:block lg:block z-10 list-container">
      <div class="flex justify-between items-center w-full">
        <div class="text-white flex text-md font-bold leading-[34px] my-3 relative">
          Chat
        </div>
        <a class="flex" href="./explore.html">
          <img src="./js/cross-ec898236eb501d13f4d1343d4a90ed1c0afec71efde2ed1e606916d52f2c5331.svg"
            class="block lg:hidden cursor-pointer">
        </a>
      </div>
      <form class="relative flex flex-1" action="./chart.html#" method="GET">
        <label for="search-field" class="sr-only">Search</label>
        <svg class="ml-2 pointer-events-none absolute inset-y-0 left-0 h-full w-5 text-gray-400" viewBox="0 0 20 20"
          fill="currentColor" aria-hidden="true">
          <path fill-rule="evenodd"
            d="M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z"
            clip-rule="evenodd"></path>
        </svg>
      </form>
      <a data-turbo-stream="false" v-for='(item, index) in chartList' :key='index' @click="leftlick(item, index)"
        style="cursor: pointer;"
        :class="charActive === index?'w-full mt-2 px-[6px] bg-[#303030] border border-zinc-600 rounded-[10px] justify-start items-start gap-4 inline-flex conversation-open': 'w-full mt-2 px-[6px]  justify-start items-start gap-4 inline-flex conversation-open'"
        id="conversation-776236">
        <div class="w-full relative h-[59px] rounded-[10px] justify-start items-center gap-3 inline-flex">
          <div id="conversation-pfp-776236" class="w-1/5 h-10 justify-start items-center flex">
            <img class="object-cover object-top rounded-full h-12 w-12" :src="item.toUserInfo?.photo">

          </div>
          <div class="flex-col w-3/5 justify-start items-start gap-0.5 inline-flex">
            <div class="justify-between w-[100%] items-center gap-1 inline-flex">
              <div class="text-white text-sm font-medium leading-normal">{{item.toUserInfo?.toUserName}}</div>
            </div>
            <div class="w-full opacity-75 text-white text-xs break-words truncate font-normal">{{item.lastMessage}}
            </div>
          </div>
          <div class="flex-col w-1/5 justify-end gap-2 flex">
            <div class="opacity-75 text-white text-xs font-light flex justify-end">{{item.time}}</div>
            <div class="flex justify-end">
              <div class="flex justify-end items-center">
                <div class="flex-col gap-0.5 text-right" @click='shuaxin(item, index)'>
                  <svg class="hover:text-white text-[#A4A4A4] w-4 h-4 mr-1" width="16" height="16" viewBox="0 0 16 16"
                    fill="currentColor" xmlns="http://www.w3.org/2000/svg">
                    <g id="Group">
                      <path id="Vector"
                        d="M2.42742 7.17755C2.88001 4.10191 5.7402 1.97552 8.81583 2.42811C9.86518 2.58252 10.8495 3.03026 11.6555 3.71977L10.93 4.44532C10.6868 4.68857 10.6868 5.08292 10.9301 5.3261C11.0469 5.44282 11.2052 5.50842 11.3703 5.50845H14.2265C14.5704 5.50845 14.8493 5.22962 14.8493 4.88565V2.02947C14.8492 1.68551 14.5703 1.40673 14.2263 1.40679C14.0612 1.40682 13.9029 1.47242 13.7862 1.58914L12.9765 2.39877C9.88891 -0.353483 5.1548 -0.0816883 2.40255 3.00586C1.4275 4.09967 0.794753 5.45549 0.582688 6.90538C0.499077 7.41939 0.847973 7.90386 1.36196 7.98748C1.40826 7.99501 1.45503 7.99907 1.50195 7.99965C1.9722 7.99457 2.36693 7.64392 2.42742 7.17755Z"
                        fill="currentColor"></path>
                      <path id="Vector_2"
                        d="M14.4957 7.99965C14.0255 8.00473 13.6307 8.35538 13.5702 8.82175C13.1176 11.8974 10.2575 14.0238 7.18182 13.5712C6.13248 13.4168 5.14812 12.9691 4.34213 12.2796L5.06769 11.554C5.31087 11.3108 5.31082 10.9164 5.06754 10.6732C4.9508 10.5565 4.79245 10.4909 4.62736 10.4909H1.77123C1.42727 10.4909 1.14844 10.7697 1.14844 11.1137V13.9699C1.14853 14.3138 1.42741 14.5926 1.77138 14.5925C1.93647 14.5925 2.09482 14.5269 2.21156 14.4102L3.0212 13.6006C6.10801 16.3531 10.8418 16.0822 13.5943 12.9953C14.5699 11.9013 15.203 10.545 15.415 9.09457C15.4989 8.58061 15.1504 8.0959 14.6364 8.01194C14.5899 8.00432 14.5429 8.0002 14.4957 7.99965Z"
                        fill="currentColor"></path>
                    </g>
                  </svg>
                </div>
              </div>
              <div class="flex justify-end items-center"><button data-turbo="true" class="flex-col gap-0.5 text-right"
                  @click='delchart(item, index)' type="submit">
                  <svg class="hover:text-white text-[#A4A4A4] w-4 h-4" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <g>
                      <path
                        d="M14.0002 3.83301H2.00016C1.82335 3.83301 1.65378 3.90325 1.52876 4.02827C1.40373 4.15329 1.3335 4.32286 1.3335 4.49967C1.3335 4.67649 1.40373 4.84605 1.52876 4.97108C1.65378 5.0961 1.82335 5.16634 2.00016 5.16634H3.3335V13.1663C3.33366 13.6967 3.54442 14.2053 3.91946 14.5804C4.2945 14.9554 4.80311 15.1662 5.3335 15.1663H10.6668C11.1972 15.1662 11.7058 14.9554 12.0809 14.5804C12.4559 14.2054 12.6667 13.6967 12.6668 13.1663V5.16634H14.0002C14.177 5.16634 14.3465 5.0961 14.4716 4.97108C14.5966 4.84605 14.6668 4.67649 14.6668 4.49967C14.6668 4.32286 14.5966 4.15329 14.4716 4.02827C14.3465 3.90325 14.177 3.83301 14.0002 3.83301ZM7.3335 11.1663C7.3335 11.3432 7.26326 11.5127 7.13823 11.6377C7.01321 11.7628 6.84364 11.833 6.66683 11.833C6.49002 11.833 6.32045 11.7628 6.19543 11.6377C6.0704 11.5127 6.00016 11.3432 6.00016 11.1663V7.83301C6.00016 7.6562 6.0704 7.48663 6.19543 7.3616C6.32045 7.23658 6.49002 7.16634 6.66683 7.16634C6.84364 7.16634 7.01321 7.23658 7.13823 7.3616C7.26326 7.48663 7.3335 7.6562 7.3335 7.83301V11.1663ZM10.0002 11.1663C10.0002 11.3432 9.92993 11.5127 9.8049 11.6377C9.67988 11.7628 9.51031 11.833 9.3335 11.833C9.15669 11.833 8.98712 11.7628 8.86209 11.6377C8.73707 11.5127 8.66683 11.3432 8.66683 11.1663V7.83301C8.66683 7.6562 8.73707 7.48663 8.86209 7.3616C8.98712 7.23658 9.15669 7.16634 9.3335 7.16634C9.51031 7.16634 9.67988 7.23658 9.8049 7.3616C9.92993 7.48663 10.0002 7.6562 10.0002 7.83301V11.1663Z"
                        fill="currentColor"></path>
                      <path
                        d="M6.66667 3.16634H9.33333C9.51014 3.16634 9.67971 3.0961 9.80474 2.97108C9.92976 2.84605 10 2.67649 10 2.49967C10 2.32286 9.92976 2.15329 9.80474 2.02827C9.67971 1.90325 9.51014 1.83301 9.33333 1.83301H6.66667C6.48986 1.83301 6.32029 1.90325 6.19526 2.02827C6.07024 2.15329 6 2.32286 6 2.49967C6 2.67649 6.07024 2.84605 6.19526 2.97108C6.32029 3.0961 6.48986 3.16634 6.66667 3.16634Z"
                        fill="currentColor"></path>
                    </g>
                  </svg>
                </button>
              </div>
            </div>
          </div>
        </div>
      </a>

    </aside>
    <div id="redirect"></div>
    <div class="w-full h-[56px] fixed bottom-0 bg-neutral-950 background-gradient z-20 block lg:hidden">
      <div class="flex p-[15px] justify-between">
        <!-- Discover Icon -->
        <a href="./explore.html">
          <img src="./images/explore.png" style="width: 24px">
        </a>
        <!-- My AI Icon -->
        <a href="./myai.html" class="relative">
          <img src="./images/myai.png" style="width: 24px">
        </a>
        <!-- Create AI Icon -->
        <a href="./create1.html" class="relative">
          <img src="./images/create.png" style="width: 24px">
        </a>
        <!-- Chat Icon -->
        <a href="./chart.html">
          <img src="./images/chat-1.png" style="width: 24px">
        </a>


      </div>
    </div>
    <div id="character-subscribe-modal" v-if='showsubscribeModal'>
      <div x-data="{ open: true }" class="relative">
        <div x-show="open"
          class="fixed top-0 left-0 right-0 bottom-0 z-50 bg-black bg-opacity-50 backdrop-blur-sm  email-modal modal-backdrop feedback-modal">
        </div>
        <div x-show="open" class="fixed inset-0 z-50 overflow-y-auto">
          <div class="items-end justify-center p-4 flex items-center min-h-screen text-center sm:items-center sm:p-0">
            <div
              class="relative transform overflow-hidden rounded-lg text-left shadow-xl transition-all sm:my-8 bubble-wrapper">
              <div class="absolute right-0 top-0 pr-4 pt-4 sm:block z-20" @click="closeBox">
                <div @click="closeBox"
                  class="rounded-md text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">
                  <span class="sr-only">Close</span>
                  <img src="./images/close.png" style="    width: 24px;
    height: 24px;" alt="">
                </div>
              </div>
              <div
                class="flex justify-end rounded-lg border border-neutral-700 w-[320px] h-[515px] md:w-[740px] gradient-subscription-wrapper relative">
                <img sizes="(max-width: 767px) 300px, 768px"
                  class="left-0 absolute w-full lg:w-[50%] object-cover h-[55%] lg:h-full" src="./images/dingyue.png">
                <div
                  class="bg-premium-opacity-50 flex bg-transparent z-10 justify-end flex-col items-start lg:gap-10 p-5 lg:p-6 lg:py-12 bg-stone-900 w-full md:w-1/2 h-full rounded-r-lg">
                  <div>
                    <div class="text-white md:text-3xl text-xl font-bold leading-[34px]">
                      Become Premium to
                      <span class="text-primary">Generate</span>
                      more!
                    </div>
                    <div class="mt-5 mb-2.5 flex text-[#E1E1E1] text-sm italic font-medium">With subscription you can:
                    </div>
                    <div class="flex flex-col gap-5">
                      <div class="justify-start items-center gap-3 inline-flex">
                        <div class="text-white text-sm font-medium leading-tight flex"><img
                            src="./js/check_circle-8bef1807002524e283a697e23b0d49f656c8479fd4e1c273f584a6162da8ead1.svg"
                            class="mr-2"> Generate as many AI’s as you want</div>
                      </div>
                      <div class="justify-start items-center gap-3 inline-flex">
                        <div class="text-white text-sm font-medium leading-tight flex"><img
                            src="./js/check_circle-8bef1807002524e283a697e23b0d49f656c8479fd4e1c273f584a6162da8ead1.svg"
                            class="mr-2"> Generate the most spicy photos</div>
                      </div>
                      <div class="justify-start items-center gap-3 inline-flex">
                        <div class="text-white text-sm font-medium leading-tight flex"><img
                            src="./js/check_circle-8bef1807002524e283a697e23b0d49f656c8479fd4e1c273f584a6162da8ead1.svg"
                            class="mr-2"> See all the girls photos</div>
                      </div>
                    </div>
                  </div>
                  <div class="flex flex-col gap-y-2 w-full mt-6">
                    <a :href='jumpUrl'
                      class="px-4 py-3 primary-gradient  cursor-pointer rounded-lg justify-center items-center gap-2 inline-flex">
                      <img class="h-5 w-5"
                        src="./js/premium-white-bd87bee579b4129d7997c488c36bc0fe3fcbb2a5874e4c8d248a08311c5304f3.svg">
                      <div class="text-white text-sm font-semibold leading-tight">Become Premium</div>
                    </a>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div id="character-subscribe-modal" v-if='showsubscribeModalPay'>
      <div x-data="{ open: true }" class="relative">
        <div x-show="open"
          class="fixed top-0 left-0 right-0 bottom-0 z-50 bg-black bg-opacity-50 backdrop-blur-sm  email-modal modal-backdrop feedback-modal">
        </div>
        <div x-show="open" class="fixed inset-0 z-50 overflow-y-auto">
          <div class="items-end justify-center p-4 flex items-center min-h-screen text-center sm:items-center sm:p-0">
            <div
              class="relative transform overflow-hidden rounded-lg text-left shadow-xl transition-all sm:my-8 bubble-wrapper">
              <div class="absolute right-0 top-0 pr-4 pt-4 sm:block z-20"
                @click="showsubscribeModalPay = false, location.href = './explore.html'">
                <button type="button"
                  class="rounded-md text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">
                  <span class="sr-only">Close</span>
                  <img src="./images/close.png" style="    width: 24px;
    height: 24px;" alt="">
                </button>
              </div>
              <div
                class="flex justify-end rounded-lg border border-neutral-700 w-[320px] h-[515px] md:w-[740px] gradient-subscription-wrapper relative">
                <img sizes="(max-width: 767px) 300px, 768px"
                  class="left-0 absolute w-full lg:w-[50%] object-cover h-[55%] lg:h-full" src="./images/pay.jpg">
                <div
                  class="bg-premium-opacity-50 flex bg-transparent z-10 justify-end flex-col items-start lg:gap-10 p-5 lg:p-6 lg:py-12 bg-stone-900 w-full md:w-1/2 h-full rounded-r-lg">
                  <div>
                    <div class="text-white md:text-3xl text-xl font-bold leading-[34px]">
                      Become Premium to
                      <span class="text-primary">Chat!</span>
                    </div>

                    <div class="flex flex-col gap-5">
                      <div class="justify-start items-center gap-3 inline-flex">
                        <div class="text-white text-sm font-medium leading-tight flex"><img
                            src="./js/check_circle-8bef1807002524e283a697e23b0d49f656c8479fd4e1c273f584a6162da8ead1.svg"
                            class="mr-2"> Chat unlimited with your AI</div>
                      </div>
                      <div class="justify-start items-center gap-3 inline-flex">
                        <div class="text-white text-sm font-medium leading-tight flex"><img
                            src="./js/check_circle-8bef1807002524e283a697e23b0d49f656c8479fd4e1c273f584a6162da8ead1.svg"
                            class="mr-2"> Ask her to send you the most spicy photos</div>
                      </div>
                      <div class="justify-start items-center gap-3 inline-flex">
                        <div class="text-white text-sm font-medium leading-tight flex"><img
                            src="./js/check_circle-8bef1807002524e283a697e23b0d49f656c8479fd4e1c273f584a6162da8ead1.svg"
                            class="mr-2"> Generate as many AI's as you want</div>
                      </div>
                    </div>
                  </div>
                  <div class="flex flex-col gap-y-2 w-full mt-6">
                    <a href='./subscriptions.html'
                      class="px-4 py-3 primary-gradient  cursor-pointer rounded-lg justify-center items-center gap-2 inline-flex">
                      <img class="h-5 w-5"
                        src="./js/premium-white-bd87bee579b4129d7997c488c36bc0fe3fcbb2a5874e4c8d248a08311c5304f3.svg">
                      <div class="text-white text-sm font-semibold leading-tight">Become Premium</div>
                    </a>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>

</html>
<script>
  var otherInter = null
  var app = new Vue({
    el: '#app',
    data() {
      return {
        isLogin: true,
        isHui: true,
        openSetting: false,
        showchongzhi: false,
        minuTime: 0,
        rotateState: 0,
        feedbackmodal: false,
        modelOpen: false,
        sendText: '',
        charActive: 0,
        chartList: [],
        showmessage: false,
        showlist: true,
        recordsList: [],
        aiId: '',
        toUserInfo: {},
        activeKey: 0,
        leftIndex: 0,
        showMsg: false,
        jumpUrl: '',
        ltList: [
        ],
        showsubscribeModal: false,
        showsubscribeModalPay: false,
        inter: null,
        isShowRightMessage: true,
        showMessage: true,
        pngLoading: false,
        sendImg: false
      }
    },
    watch: {
    },
    mounted() {
      if (!localStorage.getItem('userInfo')) {
        location.href = './explore.html'
      }
      if (navigator.userAgent.match(/mobile/i)) {
        this.showMessage = true
        this.isShowRightMessage = false
      }
      console.log(otherInter, 'otherInterotherInter')
      var u = navigator.userAgent;
      var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
      var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
      if (isAndroid || isiOS) {
        this.showmessage = false
      } else {
        this.showmessage = true
      }
      if (this.getUrlParams('aiId')) {
        this.getChart(1)
      } else {

        this.getChart()
      }
      // console.log('aaaa')
      this.getOther()
    },
    methods: {
      renderMarkdown(content) {
        const regex = /\*(.*?)\*/g;
        const result = content
                .split(regex)
                .map((part, index) => {
                  if (index % 2 === 1) {
                    return `<p style="color: #546e7a; font-style: italic;">${part}</p>`; // 白色文本，深绿色背景
                  } else {
                    return `<p style="color: #fff;">${part}</p>`; // 白色文本
                  }
                })
                .join('');
        return result;
      },
      bindInput(e) {
        const isContains = this.ltList.filter(item => this.sendText.includes(item));
        console.log(isContains)
        this.sendImg = isContains.length > 0
        console.log(e.target.value)
      },
      setminu() {
        this.minuTime = 0;
        let that = this
        var timer = setInterval(function () {
          // for(i=0;i<=100;i++){
          // i+=1;
          console.log(that.minuTime, 'minuTime')
          if (that.pngLoading) {
            if (that.minuTime < 100) {
              that.minuTime += Math.floor(Math.random() * 10);
              // load.style.width = i * 3 + 'px';
              // result.innerText = i + '%';
              console.log(that.minuTime + '%', "i + '%'")
            }
            if (that.minuTime >= 99) {
              that.minuTime = 99
              clearInterval(timer);
            }
          } else {
            that.minuTime = 100
            clearInterval(timer);
          }

          console.log(that.minuTime)
          // }
        }, 4000);
      },
      getOther() {
        instance.get("/chat/getChatPromptList")
          .then((result) => {
            // console.log(result, 'ototot')
            // this.ltList = result.data.data
            for (let i = 0; i < result.data.data.length - 1; i++) {
              this.ltList.push(result.data.data[i])
            }
            // if (result.data.code === '200') {
            //   this.getChart()
            //   //   var date = new Date()
            //   //   // this.recordsList[i].time = `${date.getHours() < 10 ? '0' + date.getHours() : date.getHours()}:${date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()}`
            //   //   this.recordsList.push({
            //   //     ...result.data.data,
            //   //     time: `${date.getHours() < 10 ? '0' + date.getHours() : date.getHours()}:${date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()}`
            //   //   })
            //   //   // console.log(this.recordsList, 'recordsListrecordsList')
            //   //   this.sendText = ''
            // }
          })
      },
      setActive(type) {
        if (type === 0) {
          if (this.activeKey !== 0) {
            this.activeKey--
          }
        } else if (type === 1) {
          if (this.activeKey < this.toUserInfo?.photoList.length - 1) {
            this.activeKey++
          }
        }
      },
      shuaxin(item, index) {
        console.log(item, index, 'ii')
        // confirm(` Are you sure you want to reboot the conversation with  ${}? All messages will be lost.`);
        var x;
        var r = confirm(` Are you sure you want to reboot the conversation with  ${item.toUserInfo?.toUserName}? All messages will be lost.`);
        if (r == true) {
          this.activeKey = 0
          instance.post("/api/v1/chat/refresh-chat-session", {
            toUserId: item.toUserInfo.toUserId
          })
            .then((result) => {
              // result.data才是真正的返回结果
              // console.log(result.data, 'resultresult')
              if (result.data.code === '200') {
                // alert(result.data.info)
                this.leftlick(this.chartList[this.leftIndex], this.leftIndex)
              }
            })
          // this.leftlick(this.chartList[index], index)
        }
      },
      delchart(item, index) {
        // console.log('del', item)
        var x;
        var r = confirm(` Are you sure you want to reboot the conversation with  ${item.toUserInfo?.toUserName}? All messages will be lost.`);
        if (r == true) {
          instance.post("/api/v1/chat/del-chat-session", {
            "toUserId": item.toUserId
          })
            .then((result) => {
              // result.data才是真正的返回结果
              // console.log(result.data, 'resultresult')
              if (result.data.code === '200') {
                this.getChart()
                //   var date = new Date()
                //   // this.recordsList[i].time = `${date.getHours() < 10 ? '0' + date.getHours() : date.getHours()}:${date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()}`
                //   this.recordsList.push({
                //     ...result.data.data,
                //     time: `${date.getHours() < 10 ? '0' + date.getHours() : date.getHours()}:${date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()}`
                //   })
                //   // console.log(this.recordsList, 'recordsListrecordsList')
                //   this.sendText = ''
              }
            })
        }
      },
      dianzan(type, item) {
        // console.log(type, item.id, 'kakakak')
        instance.post("/chat/like-msg", {
          msgId: item.id,
          type: type
        })
          .then((result) => {
            // result.data才是真正的返回结果
            // console.log(result.data, 'resultresult')
            if (result.data.code === '200') {
              // alert(result.data.info)
              setTimeout(() => {
                this.leftlick(this.chartList[this.leftIndex], this.leftIndex)
              }, 300);
            }
          })
      },
      closeOther() {
        console.log(123123)
        this.modelOpen = false
      },
      updateScroll() {
        setTimeout(() => {

          let bodya = document.getElementById('messages')
          console.log(bodya.scrollTop, bodya.scrollHeight, 'bodya')
          bodya.scrollTop = bodya.scrollHeight
        }, 200);
      },
      sendCli() {
        // sendText
        if (this.sendText) {
          // let newArr = this.ltList.filter(i => this.sendText === i)
          // console.log(newArr)
          // let contains = str.includes(target);
          // console.log(contains);
          // let type = newArr.length === 0 ? 1 : 2
          // console.log(type, 'aaa')
          let type;
          const isContains = this.ltList.filter(item => this.sendText.includes(item));
          console.log(isContains, 'isContainsisContains')
          // for (let i = 0; i < this.ltList.length; i++) {
          //   let contains = this.sendText.includes(this.ltList[i])
          //   console.log(contains, 'contains')
          type = isContains.length > 0 ? 2 : 1
          let msg = ''
          // if (type === 1) {
          this.minuTime = 0
          this.recordsList.push({
            messageQ: this.sendText,
            type: type,
          })

          this.updateScroll()
          msg = this.sendText
          this.sendText = ' '
          // }
          console.log(type, 'containscontains')
          instance.post("/chat/sendMessage", {
            "type": type,
            "aiId": this.aiId,
            "messageQ": msg
          })
            .then((result) => {
              let that = this
              // result.data才是真正的返回结果
              console.log(result.data, 'resultresult')
              if (result.data.code === '200') {
                if (type === 1) {
                  // var date = new Date()
                  this.leftlick(this.chartList[this.leftIndex], this.leftIndex)
                  // this.recordsList.push({
                  //   ...result.data.data,
                  //   time: `${date.getHours() < 10 ? '0' + date.getHours() : date.getHours()}:${date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()}`
                  // })
                  // console.log(this.recordsList, 'recordsListrecordsList')

                } else if (type === 2) {
                  // this.sendText = ''
                  // this.recordsList.push(result.data.data)
                  that.pngLoading = true
                  that.setminu()
                  otherInter = window.setInterval(function () {
                    instance.get("/chat/pollImageChatMessage?taskId=" + result.data.data.taskId)
                      .then((res) => {
                        console.log(res.data, res.data.code, res.data.data.state, 'rarara')
                        if (res.data.code === '200') {
                          if (res.data.data.state !== 1) {
                            console.log('清除。。。')
                            that.pngLoading = false
                            that.minuTime = 100
                            setTimeout(() => {
                              window.clearInterval(otherInter)
                              otherInter = null
                              console.log(that.chartList, that.leftIndex, that.leftIndex, 'leftIndexleftIndex')
                              that.leftlick(that.chartList[that.leftIndex], that.leftIndex)
                            }, 1000)

                          }

                        }
                      })
                  }, 8000);


                }
              } else if (result.data.code === '20002') {
                this.showsubscribeModalPay = true
                this.jumpUrl = './subscriptions.html'
              } else if (result.data.code === '20003') {
                this.showsubscribeModal = true
                this.jumpUrl = './Recharge.html'
              }
            })
        }
      },
      refreshCli(item) {
        console.log(item, 'iiaaaai')
        this.rotateState = 1
        instance.post("/chat/refreshMessage", { messageId: item.id, type: item.type })
          .then((result) => {
            setTimeout(() => { this.rotateState = 0 }, 1000)

            // result.data才是真正的返回结果
            console.log(result.data, 'resultresult')
            if (result.data.code === '200') {
              this.leftlick(this.chartList[this.leftIndex], this.leftIndex)
            } else if (result.data.code === '20002') {
              this.showsubscribeModal = true
              this.jumpUrl = './subscriptions.html'
            } else if (result.data.code === '20003') {
              this.showsubscribeModal = true
              this.jumpUrl = './Recharge.html'
            }
            // this.recordsList = result.data.data.messageResList.reverse()
            // for (let i = 0; i < this.recordsList.length; i++) {
            //   var date = new Date(Number(this.recordsList[i].createTime));
            //   console.log(date, 'date')
            //   // this.recordsList[i].time = `${date.getFullYear()}-${date.getMonth() + 1 < 10 ? '0' + date.getMonth() + 1 : date.getMonth() + 1}-${date.getDate() < 10 ? '0' + date.getDate() : date.getDate()}`
            //   this.recordsList[i].time = `${date.getHours() < 10 ? '0' + date.getHours() : date.getHours()}:${date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()}`
            // }
          }).catch(() => {

            this.rotateState = 0
          })
      },
      setCli(item) {
        console.log(item, 'item.aiId')
        instance.post("/ai/v1/set-ai-cover", { aiId: item.receiverId, coverUrl: item.picUrl })
          .then((result) => {
            if (result.data.code === '200') {
              this.leftlick(this.chartList[this.leftIndex], this.leftIndex)
            }
          })
      },
      cliTab(item, index) {
        console.log(item, 'iii')
        this.$set(this.recordsList[index], 'modal', !this.recordsList[index].modal)
        this.$forceUpdate();
      },
      leftlick(item, index) {
        console.log('left清除', otherInter)
        if (otherInter) {
          window.clearInterval(otherInter)
          otherInter = null
        }
        this.activeKey = 0
        this.leftIndex = index
        this.aiId = item.toUserId
        this.sendText = ''
        // this.toUserInfo = item.toUserInfo
        var u = navigator.userAgent;
        this.charActive = index
        instance.post("/chat/queryChatMessageList", { receiverId: item.toUserId })
          .then((result) => {
            // result.data才是真正的返回结果
            // console.log(result.data.data.messageResList, 'resultresult')
            this.recordsList = result.data.data.messageResList.reverse()
            for (let i = 0; i < this.recordsList.length; i++) {
              var date = new Date(Number(this.recordsList[i].createTime));
              console.log(date, 'date')
              this.recordsList[i].modal = false
              // this.recordsList[i].time = `${date.getFullYear()}-${date.getMonth() + 1 < 10 ? '0' + date.getMonth() + 1 : date.getMonth() + 1}-${date.getDate() < 10 ? '0' + date.getDate() : date.getDate()}`
              this.recordsList[i].time = `${date.getHours() < 10 ? '0' + date.getHours() : date.getHours()}:${date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()}`
            }
            this.updateScroll()
          })
        instance.post("/ai/v1/get-ai-info", { aiId: item.toUserId })
          .then((result) => {
            // result.data才是真正的返回结果
            console.log(result.data, 'ai详细信息')
            this.toUserInfo = result.data.data
          })
        var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
        var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
        if (isAndroid || isiOS) {
          this.showmessage = true,
            this.showlist = false
        } else {
          this.showmessage = true,
            this.showlist = true
        }
      },
      getUrlParams(key) {
        let reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
        let r = window.location.search.substr(1)
          .match(reg);
        if (r != null)
          return unescape(r[2]);
        return null;
      },
      closeBox() {
        this.showsubscribeModal = false
        this.showsubscribeModalPay = false
      },
      getChart(type) {
        instance.post("/api/v1/chat/get-user-session-list", { page: 1, pageSize: 200 })
          .then((result) => {
            // result.data才是真正的返回结果
            this.chartList = result.data.data.chatSessionList
            if (this.chartList?.length === 0 || this.chartList == null) {
              location.href = './explore.html'
              return false
            }
            for (let i = 0; i < this.chartList.length; i++) {
              var date = new Date(Number(this.chartList[i].createTime))
              // this.chartList[i].time = `${date.getFullYear()}-${date.getMonth() + 1 < 10 ? '0' + date.getMonth() + 1 : date.getMonth() + 1}-${date.getDate() < 10 ? '0' + date.getDate() : date.getDate()}`
              this.chartList[i].time = `${date.getHours() < 10 ? '0' + date.getHours() : date.getHours()}:${date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()}`
              if (type === 1) {
                if (this.chartList[i].toUserInfo?.toUserId == this.getUrlParams('aiId')) {
                  this.leftlick(this.chartList[i], i)
                }

              }
            }
            if (!type) {
              this.leftlick(this.chartList[0], 0)
            }
          })
      }
    }
  })
</script>
